MySQL replace into 的用法

MySQL replace into 的用法

 

语法:

Sql代码 
  1. REPLACE [LOW_PRIORITY | DELAYED]  
  2.     [INTO] tbl_name  
  3.     [PARTITION (partition_name,...)]  
  4.     [(col_name,...)]  
  5.     {VALUES | VALUE} ({expr | DEFAULT},...),(...),...  

 

replace 和insert的作用是一样的,都是插入数据,当用insert 插入数据时,如果插入的记录包含的主键或者唯一索引已经存在,则会插入失败

例如:

 

 

而使用replace,如果出现这种情况,那么首先已存在的记录会被删掉,然后再插入新的记录

例如:



 可以看到affected rows为2,replace的affected rows = 被删除的行数 + 新插入的行数

 

要实现已存在则更新的的效果还可以用insert into ... on duplicate key update ...的语法,例如

 

values函数的参数是列名,返回当前插入的行所对应的该列的值 

 

可以看到如果当primary key已存在时,不会进行插入,而是执行update后面的逻辑

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值