2017-10-07 70 views
0

我有兩個表MySQL錯誤#1452

一個是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 

然後,我已經叫另一個表訂單 與----

OrdersID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY 
CustomerID INT UNSIGNED NOT NULL 
Amount FLOAT(6,2) 
Date DATE NOT NULL 

現在我試圖爲CustomerID和REFERENCE客戶添加一個外鍵(Custom ERID)

我使用這個命令,但我得到一個#1452 - 不能添加或更新子行,外鍵約束失敗

ALTER TABLE LA_Orders 
ADD CONSTRAINT fk_CustomerID FOREIGN KEY (CustomerID) REFERENCES LA_Customers(CustomerID) 

我已經作出了肯定的InnoDB匹配。

任何幫助將不勝感激。

+0

在客戶 - 具有「 0'填充 - 這很重要 – user3093389

回答

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這應該是一個主鍵,所以這應該是真實的。)

相關問題