百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql 的 on DUPLICATE key只能插入不能update的原因
分享文章到:

mysql 的 on DUPLICATE key只能插入不能update的原因

发布时间:01/15 来源: 浏览: 关键词:
mysql 的 on DUPLICATE key只能插入不能update的原因我们分析了几点了,下面大家一起来看看是哪几点吧。

mysql的 insert into ... on duplicate key ... 只能插入不能update的原因是因为:

第一个字段必须是唯一索引或 unique 主键,

第一个字段必须是唯一索引或 unique 主键,

第一个字段必须是唯一索引或 unique 主键,否则执行就就只会insert 而不会执行update。


mysql 有就插入没有就更新 on DUPLICATE key update批量更新


mysql有个批量更新的方法,mssql则无此命令用法,mysql的这个方法可以用来批量更新,更为强大的是:如果参数已存在则更新,如果数据库里没有这个参数就插入新的。

insert into ...on duplicate key update批量更新

insert into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y') on duplicate key update dr=values(dr);

举例

insert into xinhuazidian (a, b, c) VALUES ('aaa','bbb','111cn.net'),  ('aaa2','bbb2','m.111cn.net') on DUPLICATE key update b=VALUES(b), c=VALUES(c)

判断字段a,字段a必须是唯一索引或 unique 主键,有则update,没有就insert,更新的是 on DUPLICATE key update 后面设置的b字段和c字段。

使用该语法可在插入记录的时候先判断记录是否存在,如果不存在则插入,否则更新,很方便,无需执行两条SQL

INSERT INTO osc_visit_stats(stat_date,type,id,view_count) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE view_count=view_count+?
 -- osc_visit_stats 表有复合主键 (stat_date,type,id)

多字段更新

INSERT INTO osc_space_visit_records(space,user,visit_count,ip,visit_time) VALUES(?,?,?,?,?)  ON DUPLICATE KEY UPDATE visit_count=visit_count+1,ip=?,visit_time=NOW()

爱死mysql这个批量更新的方法了,原本多行执行的代码现在一条代码就搞定了并且效率杠杠滴。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有3人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板