外鍵對數據插入的影響
阿新 • • 發佈:2018-10-20
因此 clas lec keyword for 正常的 sql -s 字段值 FPerson__1A14E395"沖突。該沖突發生於數據庫"demo",表"dbo.T_Person", column "FName"。
外鍵是指向另一個表中已有數據的約束,因此外鍵值必須是在目標表中存在的。如果插入的數據在目標表中不存在的話則會導致違反外鍵約束異常。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字段設置已經在T_Person表中存在的FName 字段值的話則會插入成功,執行下面的SQL:
INSERT INTO T_Debt (FNumber,FAmount, FPerson) VALUES ("3",100, "Tom")
此句SQL則可以正常的執行成功。執行SELECT * FROM T_Debt來查看表中的數據:
可以看到數據已經被正確的插入到表中了。
外鍵對數據插入的影響