外鍵對數據更新的影響


外鍵是指向另一個表中已有數據的約束,因此外鍵值必須是在目標表中存在的。如果更新后的數據在目標表中不存在的話則會導致違反外鍵約束異常。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來查看表中的數據:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM