gpt4 book ai didi

mysql - sql查询外键错误

转载 作者:行者123 更新时间:2023-11-29 18:10:25 25 4
gpt4 key购买 nike

谁能帮我解决这个错误吗?

CONSTRAINT a_id FOREIGN KEY(A_id) REFERENCES PAINTING
*

引用列的数量必须与被引用的列相匹配

我的疑问如下:

CREATE TABLE ARTIST
(
A_id NUMBER(10) NOT NULL PRIMARY KEY ,
Name VARCHAR2(50) ,
DOB NUMBER(10) ,
DOD NUMBER(10) ,
Nationality VARCHAR2(50) ,
CONSTRAINT a_id FOREIGN KEY(A_id) REFERENCES PAINTING
);


CREATE TABLE PAINTING
(
P_id NUMBER(10) NOT NULL,
Title NUMBER(10) ,
Value NUMBER(10) ,
Aquisition_date DATE NOT NULL,
Insurance_value NUMBER(10),
CONSTRAINT prim_key PRIMARY KEY(P_id, Aquisition_date),
CONSTRAINT fk1 FOREIGN KEY (P_id) REFERENCES IN_GALLERY,
CONSTRAINT fk2 FOREIGN KEY (P_id) REFERENCES ON_LOAN,
CONSTRAINT fk3 FOREIGN KEY (P_id) REFERENCES OWNER_HISTORY
);

最佳答案

外键必须引用主键而不仅仅是部分列。

表 PAINTING 在 A_id 和 Aquisition_date 上有一个复合主键。尝试这个。它应该可以工作。

CREATE TABLE PAINTING
(
P_id NUMBER(10) NOT NULL,
Title NUMBER(10) ,
Value NUMBER(10) ,
Aquisition_date DATE NOT NULL,
Insurance_value NUMBER(10),
CONSTRAINT prim_key PRIMARY KEY(P_id, Aquisition_date)
);





CREATE TABLE ARTIST
(
A_id NUMBER(10) NOT NULL PRIMARY KEY ,
Name VARCHAR2(50) ,
DOB NUMBER(10) ,
DOD NUMBER(10) ,
Nationality VARCHAR2(50) ,
p_id NUMBER,
Aquisition_date DATE,
CONSTRAINT fk_painting FOREIGN KEY(P_id, Aquisition_date) REFERENCES PAINTING
);

我删除了您拥有的其他表的约束。如果需要,将它们添加回来。

关于mysql - sql查询外键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47459977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com