频道栏目
首页 > 资讯 > MySQL > 正文

MySQL数据的高级操作之主键冲突学习讲解

18-07-17        来源:[db:作者]  
收藏   我要投稿

数据的高级操作

数据的操作,无外乎增删改查。

新增数据的基本语法为:

insert into + 表名 + [(字段列表)] + values (值列表);

在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突。

主键冲突

当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即更新或替换。

下面,以表my_class为例,进行测试:

1

其中,grade为主键。

第一种情况:主键冲突,进行更新操作。

基本语法:insert into + 表名 + [(字段列表:包含主键)] + values (值列表) on duplicate key update 字段 = 新值;

执行如下 SQL 语句,进行测试:

-- 测试主键冲突的 SQL 语句
insert into my_class values ('PM3527','B315')

2

如上图所示,当主键已经存在的时候,产生主键冲突。再执行如下 SQL 语言,解决主键冲突的问题:

-- 当主键冲突的时候,进行更新操作
insert into my_class values ('PM3527','B315')
-- 冲突处理
on duplicate key update
-- 更新主键值
room = 'B315';

3

第二种情况:主键冲突,选择替换操作。

基本语法:replace insert into + 表名 + [(字段列表:包含主键)] + values (值列表);

执行如下 SQL 语句,进行测试:

-- 测试主键冲突的 SQL 语句
insert into my_class values ('PM3528','B215');

4

如上图所示,当主键已经存在的时候,产生主键冲突。再执行如下 SQL 语言,解决主键冲突的问题:

-- 当主键冲突的时候,进行替换操作
replace into my_class values ('PM3528','B215');

5

通过以上两种情况的演示,当再发生主键冲突的时候,咱们已经可以从容应对并解决啦!

相关TAG标签
上一篇:mysql慢查询问题:优化临时表使用,SQL语句性能提升100倍
下一篇:Linux驱动开发之混杂设备驱动代码实例
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站