MySQL--replace into的使用方法及使用场景

最近碰到这么个需求,在不同的机器部署多个相同的程序,都是对一张表的数据进行插入,但是要避免插入相同的数据。这可难住了我,后来经过组长提点,让我从sql的角度去入手,终于找到了一个完美的解决办法,就是使用replace into 代替 insert into。

replace into 语句说明:

语法: replace into 表名(字段,...) values(值,...);

replace into 首先尝试插入数据到表中,如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则没有此行数据的话,直接插入新数据。

注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。

这就刚好满足了我的需求,只要我在一个唯一字段上加UNIQUE进行修饰,就可以使多个程序在同一时间不能插入相同的数据。

于是我将表结构进行了修改。然后将SQL中insert 改为replace ,这样就完成了这个需求。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stalin_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值