A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许庭洲 黑马帝   /  2012-10-9 08:19  /  946 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 许庭洲 于 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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马