我有两张桌子
一个是Customer表 用---
CustomerID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
Name CHAR(50) NOT NULL
Address CHAR (100) Not NULL
CITY CHAR (30) Not NULL
然后我有另一个名为Orders的表 与----
OrdersID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
CustomerID INT UNSIGNED NOT NULL
Amount FLOAT(6,2)
Date DATE NOT NULL
现在我正在尝试为CustomerID和REFERENCE Customers(CustomerID)添加外键
我正在使用此命令,但我得到#1452 - 无法添加或更新子行:外键约束失败
ALTER TABLE LA_Orders
ADD CONSTRAINT fk_CustomerID FOREIGN KEY (CustomerID) REFERENCES LA_Customers(CustomerID)
我已经确定InnoDB匹配了。
任何帮助都会非常感激。
答案 0 :(得分:0)
如果LA_Orders
已有数据并且CustomerID
列无效,则会发生这种情况。
您可以使用以下方式找到它们:
select lo.*
from LA_Orders lo
where lo.CustomerID not in (select lc.CustomerID from LA_Customers lc);
(实际上,这假定LA_Customers(CustomerID)
不是NULL
。它应该是主键,因此应该是真的。)