如何实现mysql 有记录则更新,没有则添加新记录17认证网

正规官方授权
更专业・更权威

如何实现mysql 有记录则更新,没有则添加新记录

在数据处理过程中,经常会遇到一种问题,增量更新的问题。

具体逻辑就是先判断一下数据库中有没有对应记录,如果没有就插入新的记录。如果有,就直接更新那一条记录而不插入。

普通做法先比较,然后在更新和插入,这样效率就慢了。下面是MYSQL的做法,用一条命令完成。

表中必須包含主鍵PRIMARY或唯一unique的字段

INSERT INTO table (primary key c,c1,c2) VALUES (1,2,3ON DUPLICATE KEY UPDATE c1=1, c2=c2+1

当表中已经存在主键primary key c 值为1的记录时,则将会更新而不会添加。

又如:

  1. INSERT INTO  `imgtoday` ( `t_id`,`atype`, `picNum`)
  2. VALUES ( ?, ?, 1) ON DUPLICATE KEY UPDATE `picNum`= `picNum`+1′;

其中`t_id`是主键。如果插入时发现有该主键值的记录时,就把后面字段PICNUM加1

要注意的事,并非要主键才行,只要SQL中有独一无非的UNIQUE索引即可。比如下面一条:

    INSERT INTO   `student` (`id`, `stuName`,course,score)  VALUES (10, '张三三','语文1','70' )  ON DUPLICATE KEY UPDATE  `stuName`='张三三',course='语文1',score='59'

这条SQL中,mem字段是UNIQUE索引,主键是另一个字段,它的意思是插入某个会员到表msgread,如果已经有这个会员就直接更新readed字段值。

想了解更多干货,可通过下方扫码关注

可扫码添加上智启元官方客服微信👇

未经允许不得转载:17认证网 » 如何实现mysql 有记录则更新,没有则添加新记录
分享到:0

评论已关闭。

400-663-6632
咨询老师
咨询老师
咨询老师