CREATE TABLE IF NOT EXISTS boards (
id SERIAL PRIMARY KEY,
title VARCHAR(45),
description VARCHAR(140)
);
CREATE TABLE IF NOT EXISTS posts (
id SERIAL PRIMARY KEY,
board_id INTEGER REFERENCES boards(id) NOT NULL,
board_title VARCHAR(45) REFERENCES boards(title) NOT NULL
};
我想使用与参考
board_id
相同的技术,但它不起作用。
我也尝试过
TEXT REFERENCES boards(title) NOT NULL
,但它又不起作用了。
这没有任何意义,原因有两个。
boards
行与什么 posts
行相关,您已经定义了外键。posts
表上 - 它是在 boards
上定义的。如果你真的想这样做(但你不想这样做 - 这是一个坏主意),那么你需要阅读 PostgreSQL 打印的错误消息(并且你没有提供 - 在提出问题时始终提供错误消息) .
there is no unique constraint matching given keys for referenced table "boards"
您无法定义对非唯一列的引用,并且
title
在 boards
表上不是唯一的(也可以为空)。您需要使其唯一且不为空。