【发布时间】:2015-04-18 00:44:43
【问题描述】:
我有两个表“Persona”(人)和“Dona”(女),我想更改第三个名为“Baptisme”(洗礼)的表,但我遇到了一些问题。
这些是我的桌子:
CREATE TABLE baptismes.Persona (
id SERIAL PRIMARY KEY,
nom VARCHAR(255),
nom_complementari1 VARCHAR(255),
nom_complementari2 VARCHAR(255),
nom_complementari3 VARCHAR(255),
nom_complementari4 VARCHAR(255),
cognom1 VARCHAR(255),
cognom2 VARCHAR(255),
lloc_naixement VARCHAR(255) REFERENCES baptismes.Poblacio(nom),
data_naixement baptismes.Data,
alies VARCHAR(255),
sexe CHAR(1),
difunt BOOLEAN
);
CREATE TABLE baptismes.Dona (
cognom_marit_actual VARCHAR(255),
cognom_marit_anterior VARCHAR(255)
) INHERITS (baptismes.Persona);
CREATE TABLE baptismes.Baptisme (
id SERIAL PRIMARY KEY,
...
);
Baptisme 有更多属性,但它们在这里无关紧要。
我想做的是:
ALTER TABLE baptismes.baptisme
ADD COLUMN mare INTEGER REFERENCES baptismes.Dona(id);
但这给了我以下错误:
ERROR: no hay restricción unique que coincida con las columnas dadas en la tabla referida «dona»
********** Error **********
ERROR: no hay restricción unique que coincida con las columnas dadas en la tabla referida «dona»
SQL state: 42830
英文:“没有唯一约束匹配给定键的引用表”。
我无法理解,因为 Dona 从 Persona (id) 获取 PK,所以应该是 UNIQUE。
有人可以帮帮我吗?谢谢!
【问题讨论】:
标签: sql postgresql