我在 PostGreSQL 中有以下代碼:
CREATE TABLE posee_ge
(
nombre_gim_comp VARCHAR(100),
tiempo_inauguracion_gim_comp SMALLINT,
rut_entrenador VARCHAR(50),
PRIMARY KEY(nombre_gim_comp, tiempo_inauguracion_gim_comp, rut_entrenador)
);
CREATE TABLE gimnasio_competencia
(
nombre VARCHAR(100),
tiempo_inauguracion SMALLINT,
cantidad_personas_promedio SMALLINT,
PRIMARY KEY(nombre, tiempo_inauguracion)
);
ALTER TABLE posee_ge
ADD FOREIGN KEY(nombre_gim_comp) REFERENCES gimnasio_competencia(nombre),
ADD FOREIGN KEY(tiempo_inauguracion_gim_comp) REFERENCES gimnasio_competencia(
tiempo_inauguracion);
我得到了錯誤(請參閱此處在線查看代碼):
沒有唯一約束匹配給定鍵的參考表“gimnasio_competencia”。
但是 gimnasio_competencia 表中所有參考的屬性都是 PK(因此是 UNIQUE 和 NOT NULL)。那么,有什么問題呢?
uj5u.com熱心網友回復:
試試這個:
ALTER TABLE posee_ge
ADD FOREIGN KEY(nombre_gim_comp, tiempo_inauguracion_gim_comp) REFERENCES gimnasio_competencia(nombre, tiempo_inauguracion);
這應該有效,因為 (nombre, tiempo_inauguracion) 是被參考表 gimnasio_competencia 的主鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/337128.html
標籤:PostgreSQL
