尝试在表供应商上创建用于Supplier_ID引用表支付的外键。
CREATE TABLE Payment (
Supplier_ID INT (4) NOT NULL,
Date DATE NOT NULL,
Amount INT (4),
Payment_ID INT (4) NOT NULL,
PRIMARY KEY (Payment_ID, Supplier_ID)
);
Query OK, 0 rows affected (0.10 sec)
CREATE TABLE Supplier (
Supplier_ID INT(4) NOT NULL,
Name VARCHAR(4) NOT NULL,
Country VARCHAR(4) NOT NULL,
Reliability_Score INT(4),
Contact_Info VARCHAR(4),
PRIMARY KEY (Supplier_ID)
FOREIGN KEY (Supplier_ID) REFERENCES Payment(Supplier_ID)
);
ERROR 1215 (HY000): Cannot add foreign key constraint 如果我能提供更多的信息,请告诉我,谢谢。
发布于 2013-11-13 05:43:52
外键必须引用唯一的列。因此,Supplier_ID列需要是唯一的。
然而,如果我正确理解你的意图的话,你可能会把它倒过来。它可能是引用供应者表的支付表中的supplier_ID的外键。
发布于 2013-11-13 05:47:02
在关系数据库的上下文中,外键是一个表中唯一标识另一个表行的字段(或字段集合)。换句话说,外键是用于在两个表中的数据之间建立和执行链接的列或列的组合。
在您的代码中,您已经将主键声明为PRIMARY KEY (Payment_ID, Supplier_ID),这是两个列的组合,这很好,但是在创建外键FOREIGN KEY (Supplier_ID) REFERENCES Payment(Supplier_ID)时,您将一个列引用为两个列的组合,这是错误的。
在这里阅读Key
现在您的解决方案:首先创建供应商表
CREATE TABLE Supplier (
Supplier_ID INT(4) NOT NULL,
Name VARCHAR(4) NOT NULL,
Country VARCHAR(4) NOT NULL,
Reliability_Score INT(4),
Contact_Info VARCHAR(4),
PRIMARY KEY (Supplier_ID)
);现在是付款表
CREATE TABLE Payment (
Supplier_ID INT (4) NOT NULL,
Date DATE NOT NULL,
Amount INT (4),
Payment_ID INT (4) NOT NULL,
PRIMARY KEY (Payment_ID, Supplier_ID),
FOREIGN KEY (Supplier_ID) REFERENCES Supplier(Supplier_ID)
);https://stackoverflow.com/questions/19946172
复制相似问题