2012-01-25 119 views
-2

可能重複:
delete primary key row which is foreign key of another table刪除主鍵列是另一個表的外鍵

Customers

CustomerID 

Addresses

AddressId 

Customers_Addresses

CustomerID 
AddressID 

Customer_person

CustomerID 
PersonID 

我想從一個CustomerID確定的Customer表中刪除行,我想更新Addressescustomer_person表。

如何創建這樣的查詢?請幫幫我。

+0

不要問一個新問題,而是編輯您的舊問題以使其可以理解。你可能會發現[「寫完美的問題」](http://tinyurl.com/so-hints)一個有用的指導方針。另外,不要使用ad-hoc模式,而應使用實際的[示例代碼](http://sscce.org/)(SQL語句)作爲表模式和示例數據。 – outis

回答

0

你不應該刪除你的記錄,而是使用這種方法。用布爾數據類型創建一個名爲「isDeleted」的列。默認值是「false」。現在,只要您想刪除任何記錄,只需使該記錄爲「真」。進行更改在您的選擇查詢中,僅選擇那些記錄是isDeleted = false;

+1

您正在介紹未指定的業務邏輯。此外,數據類型是「位」,而不是布爾值。爲什麼不使用日期時間呢?爲什麼不使用varchar來指示刪除的用戶? –

0

您應該設置您的Fkey一些特定的選項,如ON DELETE {CASCADE,SET NULL,設置默認}

相反,你將無法刪除引用的行,因爲它是由SQL Server禁止由於誠信的完整性。

因此,該選項是將引用表的值設置爲NULL或任何其他DEFAULT值。

或者刪除它太

或者,如果引用行有沒有父行的一些意義 - 那麼什麼是錯的與你的數據庫設計 - 要麼你不需要的Fkey或模式是沒有正常化。

相關問題