1. 程式人生 > >外來鍵對資料更新的影響

外來鍵對資料更新的影響

外來鍵是指向另一個表中已有資料的約束,因此外來鍵值必須是在目標表中存在的。如果更新後的資料在目標表中不存在的話則會導致違反外來鍵約束異常。T_Debt 表中FPerson 欄位是指向表T_Person的FName 欄位的外來鍵,如果我們執行下面SQL:


UPDATE T_Debt set FPerson = "Merry" WHERE FNumber="1" 

由於在T_Person表中不存在FName欄位等於“Merry”的資料行,所以會資料庫系統會報出類似如下的錯誤資訊:

UPDATE 語句與FOREIGN KEY 約束"FKT_DebtFPerson__1A14E395"衝突。該衝突發生於資料庫"demo",表"dbo.T_Person", column "FName"。

而如果我們為FPerson欄位設定已經在T_Person表中存在的FName欄位值的話則會插入成功,執行下面的SQL:


UPDATE T_Debt set FPerson = "Lili" WHERE FNumber="1" 

此句SQL則可以正常的執行成功。執行SELECT * FROM T_Debt來查看錶中的資料:

可以看到資料已經被正確的更新到表中了。