怎麼能這樣一句話:此SQL語句如何引發以下異常?
DELETE FROM passage
WHERE passageid NOT IN
(
SELECT passageid from PreEndedPassages_passages
UNION SELECT fromPassageid from severalvisit
UNION SELECT toPassageid from severalvisit
UNION SELECT registerPassageid from stationobjects WHERE registerpassageid IS NOT NULL
UNION SELECT beginPassageid from stationobjects WHERE beginPassageid IS NOT NULL
UNION SELECT endPassageid from stationobjects WHERE endPassageid IS NOT NULL
)
拋出此異常?
The DELETE statement conflicted with the FOREIGN KEY constraint "FK_statobj_begpasid". The conflict occurred in database "db.mdf", table "dbo.stationobjects", column 'beginpassageid'.
我沒有線索,但它發生了。 beginPassageId是一個關於通道ID的外鍵。編輯: 考慮NOT IN。我想刪除其中一個相關表中不存在的所有段落。它通常有效,但它發生過一次。
謝謝。
你確定這個關係是在段落(passageid)和stationobjects(beginPassageid)之間的關係。因爲你的查詢沒問題,它必須刪除,如果你指定的關係是對的 –
是的。否則它不會拋出異常。 – Powerslave