MySQL insert 与 update扩展

文章讨论了两种数据插入策略:查询后插入与使用INSERTIGNORE,分析了它们的优缺点。对于更新操作,提出了使用ONDUPLICATEKEYUPDATE的MySQL特性的方法,允许数据存在则更新,不存在则插入。
摘要由CSDN通过智能技术生成

数据插入

对于插入操作,我们的处理逻辑:

数据存在则略过,不存在则插入

方案1:

: 从数据库中查询该数据是否已存在;

if(不存在) then 
  : 向数据库中插入数据;

方案2:
使用 INSERT IGNORE

INSERT IGNORE INTO table(column_list)
VALUES( value_list),
      ( value_list),
      ...

优缺点比较:

  • 方案1会产生2个sql,并发的时候,可能会导致插入相同的数据
  • 使用方案2时,如果是批量插入,在处理期间发生错误时,insert ignore会忽略错误的行,将正确的插入到数据库中,善用此特点

数据更新

对于更新操作,我们的处理逻辑:

数据存在则更新,不存在则插入

方案1:

: 从数据库中查询该数据是否已存在;

if(存在) then 
  : 更新数据库中的数据;
else 
  : 向数据库中插入数据;

方案2:

使用 ON DUPLICATE KEY UPDATE

INSERT INTO t1 (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1, b=4;

传送门

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值