快乐学习
前程无忧、中华英才非你莫属!

MySQL主键冲突

数据的高级操作

数据的操作,无外乎增删改查
新增数据的基本语法为:
  • insert into + 表名 + [(字段列表)] + values (值列表);
在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突。

主键冲突

当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即更新或替换。
下面,以表my_class为例,进行测试:
其中,grade为主键。
第一种情况:主键冲突,进行更新操作。
  • 基本语法:insert into + 表名 + [(字段列表:包含主键)] + values (值列表) on duplicate key update 字段 = 新值;
执行如下 SQL 语句,进行测试:
-- 测试主键冲突的 SQL 语句insert into my_class values ('PM3527','B315');
1
2
如上图所示,当主键已经存在的时候,产生主键冲突。再执行如下 SQL 语言,解决主键冲突的问题:
-- 当主键冲突的时候,进行更新操作insert into my_class values ('PM3527','B315')
-- 冲突处理
on duplicate key update
-- 更新主键值
room = 'B315';
1
2
3
4
5
6
第二种情况:主键冲突,选择替换操作。
  • 基本语法:replace insert into + 表名 + [(字段列表:包含主键)] + values (值列表);
执行如下 SQL 语句,进行测试:
-- 测试主键冲突的 SQL 语句insert into my_class values ('PM3528','B215');
1
2
如上图所示,当主键已经存在的时候,产生主键冲突。再执行如下 SQL 语言,解决主键冲突的问题:
-- 当主键冲突的时候,进行替换操作replace into my_class values ('PM3528','B215');
1
2
通过以上两种情况的演示,当再发生主键冲突的时候,咱们已经可以从容应对并解决啦!

温馨提示:符号[]括起来的内容,表示可选项;符号+,则表示连接的意思。
来源:http://blog.csdn.net/qq_35246620/article/details/72854271  作者:维c糖果
打赏
赞(0) 打赏
未经允许不得转载:同乐学堂 » MySQL主键冲突

特别的技术,给特别的你!

联系QQ:1071235258QQ群:710045715

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

error: Sorry,暂时内容不可复制!