2009-05-26 162 views
1

我會直截了當地指出。 我正在一個現有的數據庫上建立一個網站,它沒有任何關係來保持它的一致性。我現在正在嘗試增加關係來照顧這個協調問題。SQL外鍵約束不允許關係

簡化: 我有一個庫存物品表,位置表和零件表。

stock items表使用可在其他表(外鍵)中找到的ID。此表使用多個列作爲主鍵(包括locationid和partnr +其他) 我成功添加了庫存料品表和庫位表中的庫位ID之間的關係。 當我嘗試添加庫存項目表和零件表之間的關係時,會發生問題:

ALTER TABLE語句與FOREIGN KEY約束(在零件表,partnumber表中)衝突。

我檢查了約束,沒有一個在那裏。 我試圖尋找對未知部分的參考,但我本可以寫一個錯誤的查詢...

任何人都可以幫我弄清楚如何解決這個問題?

回答

1

是的,這聽起來像你寫了一個錯誤的查詢,並有對不存在的部分的引用。

SELECT partnumberid,(其他字段)
FROM stockitems
WHERE partnumberid NOT IN(SELECT partnumberid FROM份)

SELECT partnumberid,(otherfields)
FROM stockitems SI
LEFT JOIN零件p ON si.partnumberid = p.partnumberid
WHERE p.partnumberid IS NULL

+0

它似乎有沒有PartNR的記錄,我發現你的答案,THX! – 2009-05-26 07:11:56