您的位置:首页 > 职场人生

黑马程序员之SQL 学习笔记:外键对数据更新的影响

2012-10-09 08:55 441 查看
-------------------------------2345王牌技术员联盟2345王牌技术员联盟、期待与您交流!-----------------------------

T_Person表

FName FAge FRemark

Jim 22 BlaBla

Kimisushi 25 BlaBla

Lili 25 BlaBla

luren1 25 BlaBla

LXF 22 BlaBla

Tom 12 Sonic

XiaoWang 25 BlaBla

外键对数据更新的影响

外键是指向另一个表中已有数据的约束,因此外键值必须是在目标表中存在的。如果更新后的数据在目标表中不存在的话则会导致违反外键约束异常。T_Debt表中FPerson字段是指向表T_Person的FName字段的外键,如果我们执行下面的SQL:

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

由于在T_Person表中不存在FName字段等于“Merry”的数据行,所以会数据库系统会报出类似如下的错误信息

UPDATE 语句与FOREING KEY 约束“FK_T_Debt_FPerson_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 来查看表中的数据:

FNumber FAmount FPerson

1 200.00 Lili

2 300.00 jim

8 123.00 Tom

---------------------------------------------------
2345王牌技术员联盟、2345王牌技术员联盟、期待与您交流!---------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: