问题
我们知道在数据库中保证数据的唯一性是十分必要的,这也就是有主键的一个原因,但是数据肯定是需要更新的,当然我们可以按照日期或者其他维度进行数据的永不冲突的更新。但是还有一种情况下需要我们迭代的去更新数据,
比如下图主键是ID
现在name为“哈哈哈哈”的人年龄要变成99,由于存在主键的原因,你在插入一条数据如果ID相同是没办法插入的,这里就要介绍Mysql的一个特别神奇的功能-ON DUPLICATE KEY UPDATE,同步实现插入或者更新
方法
如果你插入的记录导致一个UNIQUE索引或者primary key(主键)出现重复,那么就会认为该条记录存在,则执行update语句而不是insert语句,反之,则执行insert语句而不是更新语句。
简单点说,他就是自动判断主键是否重复,之后根据这个来执行insert还是updat的操作。
我们看一下结果:
没错,顺利的进行跟新了,当然这个数据量少喝字段主键都少可能看不清楚它的强大之处,但是批量处理入库的CSV文件的时候相当的有用
总结
大家要学会总结sql的构造方式,适当