黑马程序员技术交流社区

标题: 【分享】主键对数据更新的影响 [打印本页]

作者: 许庭洲    时间: 2012-10-9 08:19
标题: 【分享】主键对数据更新的影响
本帖最后由 许庭洲 于 2012-10-9 08:20 编辑

主键是在同一张表中必须是唯一的,如果在进行数据更新的时候指定的主键与表中已有的数据

重复的话则会导致违反主键约束的异常。

T_Debt 表:
FNumber           FAmount             FPerson
1                       200.00                  jim
2                       300.00                  jim
3                       123.00                  Tom


T_Debt表中FNumber字段是主键,如果我们执行下面SQL:
UPDATE T_Debt set FNumber = '2' WHERE FPerson = 'Tom'
由于表中已经存在一条FNumber字段为2的记录,所以运行这句SQL的时候会报出类似如下的

错误信息:
违反了PRIMARY KEY 约束‘PK_T_Debt_1920BF5C'。不能在对象'dbo.T_Debt'中插入重复键。

而如果我们为FNumber设置一个不重复值的话,则会插入成功,执行下面的SQL:
UPDATE T_Debt set FNumber = '8' WHERE FPerson = 'Tom'


此句SQL则可以正常执行成功。执行SELECT * FROM T_Debt来查看表中的数据:
FNumber           FAmount             FPerson
1                       200.00                  jim
2                       300.00                  jim
8                       123.00                 Tom





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2