【发布时间】:2021-01-07 15:21:01
【问题描述】:
我在 postgres 数据库中创建了这两个表,我试图将第二个表中的第一个 uuid 键添加为外键,但弹出此错误
外键约束中引用的“book_id”列不存在
这是第一张桌子
CREATE TABLE books(
book_id uuid DEFAULT uuid_generate_v4(),
book_title VARCHAR(255) NOT NULL,
book_categ VARCHAR(255),
book_price FLOAT
);
这是我尝试添加外键的第二个表
CREATE TABLE reader(
reader_id uuid DEFAULT uuid_generate_v4(),
reader_fullname VARCHAR(255) NOT NULL,
reader_CIN VARCHAR(255),
reader_adress VARCHAR(255),
FOREIGN KEY (book_id) REFERENCES books(book_id)
);
【问题讨论】:
-
外键应该是主键。您尚未定义主键。
-
我认为当我将其声明为 uuid 时,默认情况下它也将是主键
-
@GordonLinoff。实际上
FOREIGN KEY必须是UNIQUE键或声明UNIQUE的列组合。PRIMARY KEY具有UNIQUE属性,因此它也符合条件。 -
@AdrianKlaver 。 . .外键应该是主键。
标签: sql postgresql