2010-02-27 72 views

回答

5

選擇允許將null s插入到FK列中的記錄,將其插入到那裏,刪除其他記錄,然後刪除第一個記錄。

4

要麼

ON DELETE CASCADE 

或插入爲NULL的FK的如果多數民衆贊成可能模式中的一個,不知道廠商不能提供更多的信息。

0

如果兩個表彼此引用外鍵,那麼數據庫設計很可能需要改進。我想這應該調用一張額外的桌子來照顧這個設計。

對於您的問題,您可以更新一個表中的FK鍵字段爲空,然後在兩個表上觸發刪除。

但要做到這一點,請確保您確定兩個PK提前將其刪除。

黑氈帽

+0

數據庫設計可能如預期的那樣:您可以強制執行一條規則,即父級必須至少有一個子級,或者在父級行中將子行標記爲「默認」。 – gbn 2010-02-28 09:13:58

1

如果你的列是允許爲空,更新其數據,那麼爲NULL刪除數據。

0
ALTER TABLE <table1> NOCHECK CONSTRAINT ALL 
GO 
ALTER TABLE <table2> NOCHECK CONSTRAINT ALL 
GO 

DELETE FROM <table1> 
GO 
DELETE FROM <table2> 
GO 

ALTER TABLE <table1> CHECK CONSTRAINT ALL 
GO 
ALTER TABLE <table2> CHECK CONSTRAINT ALL 
GO 
+1

可能要添加說明。 – Huey 2015-07-22 09:57:23

相關問題