我在 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)
);
答案 0 :(得分:2)
您的代码的多个问题。我建议:
CREATE TABLE books (
book_id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
book_title VARCHAR(255) NOT NULL,
book_categ VARCHAR(255),
book_price NUMERIC(20, 4)
);
CREATE TABLE readers (
reader_id uuid DEFAULT uuid_generate_v4(),
reader_fullname VARCHAR(255) NOT NULL,
reader_CIN VARCHAR(255),
reader_address VARCHAR(255),
book_id uuid,
FOREIGN KEY (book_id) REFERENCES books(book_id)
);
注意事项:
FLOAT
为货币量的不好的选择。您应该使用数字/小数。我也不知道你想什么模型。但我怀疑的是,你要一个表readers
每个“读者”一排,然后另一个表readerBooks
,每本书一行,一个阅读器读取。