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
|
|