我尝试在 postgresQL 中创建一对一关系,但是当我检查 ERD 时,它看起来像是一对多关系。
这是我的 SQL 脚本:
CREATE TABLE capital (
id SERIAL PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE country (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
capital_id INTEGER,
CONSTRAINT fk_capital FOREIGN KEY(capital_id) REFERENCES capital(id)
);
postgres不支持1对1吗?
提前致谢,
您正在创建一个
1:1
,但是您没有在您的 UNIQUE
中添加 FOREIGN KEY
,ERD
认为单个首都可能有多个国家/地区,因此只需添加 UNIQUE
到capital_id
这是更新后的代码:
CREATE TABLE capital (
id SERIAL PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE country (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
capital_id INTEGER UNIQUE,
CONSTRAINT fk_capital FOREIGN KEY(capital_id) REFERENCES capital(id)
);