史上最简单的 MySQL 教程(二十)「数据的高级操作 之 主键冲突」

数据的高级操作

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

新增数据的基本语法为:

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

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

主键冲突

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

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



其中,grade为主键。

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

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

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

[plain] view plaincopy

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





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

[plain] view plaincopy

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





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

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

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

[plain] view plaincopy

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





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

[plain] view plaincopy

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





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

温馨提示:符号[]括起来的内容,表示可选项;符号+,则表示连接的意思。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值