教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql 的 on DUPLICATE key只能插入不能update的原因

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

发布时间:2023-04-29   编辑:jiaochengji.com
教程集为您提供mysql 的 on DUPLICATE key只能插入不能update的原因等资源,欢迎您收藏本站,我们将为您提供最新的mysql 的 on DUPLICATE key只能插入不能update的原因资源
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这个批量更新的方法了,原本多行执行的代码现在一条代码就搞定了并且效率杠杠滴。

您可能感兴趣的文章:
深入mysql “ON DUPLICATE KEY UPDATE” 语法的分析
mysql 有就插入没有就更新 on DUPLICATE key update批量更新
sql实现插入数据主键重复或数据已经存在,则更新这条数据
mysql存在则更新方法对比分析
mysql的存在即更新,不存在即插入的功能
mysql实现数据不存在则插入新数据否则更新
mysql insert的操作分享(DELAYED、IGNORE、ON DUPLICATE KEY UPDATE )
mysql 批量更新数据的实例分析
MySql快速插入与批量更新的方法
mysql批量插入(insert)与批量更新(update)的例子

[关闭]
~ ~