外键对数据更新的影响

外键是指向另一个表中已有数据的约束,因此外键值必须是在目标表中存在的。如果更新后的数据在目标表中不存在的话则会导致违反外键约束异常。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来查看表中的数据:

可以看到数据已经被正确的更新到表中了。

posted @   尐鱼儿  阅读(1300)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示