mysql数据库中插入数据并进行自动迭代更新

在数据库中确保数据唯一性至关重要,MySQL的ON DUPLICATE KEY UPDATE特性允许在尝试插入新数据时,如果主键冲突则自动执行更新操作。此功能在处理批量数据更新,特别是CSV文件导入时非常实用。通过示例展示了如何使用这个功能更新已有记录的年龄,以避免主键冲突。了解更多关于如何构造SQL传参函数和批量导入数据到数据库的方法,可以参考DEMO。
摘要由CSDN通过智能技术生成

问题

我们知道在数据库中保证数据的唯一性是十分必要的,这也就是有主键的一个原因,但是数据肯定是需要更新的,当然我们可以按照日期或者其他维度进行数据的永不冲突的更新。但是还有一种情况下需要我们迭代的去更新数据,
比如下图主键是ID
在这里插入图片描述
现在name为“哈哈哈哈”的人年龄要变成99,由于存在主键的原因,你在插入一条数据如果ID相同是没办法插入的,这里就要介绍Mysql的一个特别神奇的功能-ON DUPLICATE KEY UPDATE,同步实现插入或者更新

方法

如果你插入的记录导致一个UNIQUE索引或者primary key(主键)出现重复,那么就会认为该条记录存在,则执行update语句而不是insert语句,反之,则执行insert语句而不是更新语句。
简单点说,他就是自动判断主键是否重复,之后根据这个来执行insert还是updat的操作。


我们看一下结果:
在这里插入图片描述
没错,顺利的进行跟新了,当然这个数据量少喝字段主键都少可能看不清楚它的强大之处,但是批量处理入库的CSV文件的时候相当的有用

总结

大家要学会总结sql的构造方式,适当

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值