我是 SQL 编程新手,在名为 SP 的表上设置的约束有问题。我正在使用 MySQLWorkbench 并收到此错误:
Error Code: 1239. Incorrect foreign key definition for 'FK_SP_sNo': Key reference and table reference don't match
我不明白这有什么问题。有人可以帮忙解释一下出了什么问题吗?
致以诚挚的问候
CREATE TABLE S
(
sNo CHAR(5),
sName CHAR(20),
status NUMERIC(5),
city CHAR(15),
PRIMARY KEY (sNo)
);
CREATE TABLE P
(
pNo CHAR(6),
pName CHAR(20),
color CHAR(20),
weight NUMERIC(10),
city CHAR(15),
PRIMARY KEY (pNo)
);
CREATE TABLE SP
(
sNo CHAR(5),
pNo CHAR(6),
qty SMALLINT,
PRIMARY KEY (sNo, pNo),
CONSTRAINT FK_SP_sNo FOREIGN KEY (sNo) REFERENCES S,
CONSTRAINT FK_SP_pNo FOREIGN KEY (pNo) REFERENCES P
);
最佳答案
您需要引用表的列名称。
CREATE TABLE SP
(
sNo CHAR(5),
pNo CHAR(6),
qty SMALLINT, PRIMARY KEY (sNo, pNo),
CONSTRAINT FK_SP_sNo FOREIGN KEY (sNo) REFERENCES S(sNo),
CONSTRAINT FK_SP_pNo FOREIGN KEY (pNo) REFERENCES P(sNo)
);
关于mysql - 我的创建表查询中的约束有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55659661/