1. 程式人生 > >外鍵對數據插入的影響

外鍵對數據插入的影響

因此 clas lec keyword for 正常的 sql -s 字段值

外鍵是指向另一個表中已有數據的約束,因此外鍵值必須是在目標表中存在的。如果插入的數據在目標表中不存在的話則會導致違反外鍵約束異常。T_Debt 表中FPerson 字段是指向表T_Person的FName 字段的外鍵,如果我們執行下面SQL:


INSERT INTO T_Debt (FNumber,FAmount, FPerson) VALUES ("3",100, "Jerry")

由於在T_Person表中不存在FName 字段等於“Jerry”的數據行,所以會數據庫系統會報出類似如下的錯誤信息:

INSERT 語句與FOREIGN KEY約束"FKT_Debt

FPerson__1A14E395"沖突。該沖突發生於數據庫"demo",表"dbo.T_Person", column "FName"。

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


INSERT INTO T_Debt (FNumber,FAmount, FPerson) VALUES ("3",100, "Tom")

此句SQL則可以正常的執行成功。執行SELECT * FROM T_Debt來查看表中的數據:

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

外鍵對數據插入的影響