【发布时间】:2017-09-19 02:39:58
【问题描述】:
我正在使用 Postgres 9.6.2 创建电影和电视节目流媒体服务数据库(用于学校项目)。我遇到以下错误:
引用表“watchedepisodes”的给定键没有唯一约束匹配
只要用户观看了至少一集(显示在 WatchedEpisodes 表中)并允许用户对其进行评分,下面的 TVratings 表就会显示一个电视节目。由于 WatchedEpisodes 具有用户 id、电视节目 id、季节和剧集的复合主键,因此我不会从该表中仅引用 uid 和 tid 的复合键。
CREATE TABLE WatchedEpisodes (
uid int unique references Users(uid),
tid int,
season int,
episode int,
FOREIGN KEY(tid, season, episode) REFERENCES Episodes(tid, season, episode),
PRIMARY KEY (uid, tid, season, episode)
);
CREATE TABLE TVRatings (
uid int,
tid int,
rating int check (rating > 0 and rating < 6),
FOREIGN KEY(uid, tid) REFERENCES WatchedEpisodes(uid,tid),
PRIMARY KEY(uid, tid)
);
想知道是否有办法只引用该复合键的一部分。这些只是我的两个表,所以如果需要更多信息,我可以添加更多。
【问题讨论】:
标签: sql database postgresql unique-constraint composite-primary-key