mysql"ON DUPLICATE KEY UPDATE"语法简析

转载 2013年12月02日 13:33:03
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;
如果不会导致唯一值列重复的问题,则插入新行。  www.2cto.com   
 
例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果: 
1
INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1;
2
UPDATE TABLE SET c=c+1 WHERE a=1;
 
如果行作为新记录被插入,则受影响行的值显示1;如果原有的记录被更新,则受影响行的值显示2。 
这个语法还可以这样用: 
 
如果INSERT多行记录(假设 a 为主键或 a 是一个 UNIQUE索引列): 
1
1.INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=c+1;
执行后, c 的值会变为 4 (第二条与第一条重复, c 在原值上+1). 
1  www.2cto.com  
2.INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=VALUES(c);
 
执行后, c 的值会变为 7 (第二条与第一条重复, c 在直接取重复的值7). 
 
注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法! 
这个语法和适合用在需要 判断记录是否存在,不存在则插入存在则更新的场景.

MySQL中ON DUPLICATE KEY UPDATE使用

今天做判断插入用到了MySQL中ON DUPLICATE KEY UPDATE,现在Mark以下! 如果你想做到数据库中没有数据的话插入数据、有数据的话更新数据,那么你可以选择ON DUPLICATE...
  • u014363151
  • u014363151
  • 2014年05月21日 09:16
  • 1732

Mysql ON DUPLICATE KEY UPDATE 的 用法 简记

如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。例如,如果列a被定义为UNIQUE,并...
  • yw5201314
  • yw5201314
  • 2012年12月10日 15:12
  • 17146

Mysql使用ON DUPLICATE KEY UPDATE批量操作

在UPDATE子句中使用VALUES(col_name)函数从INSERT...UPDATE语句的INSERT部分引用列值。换句话说,如果没有发生重复关键字冲突,则UPDATE子句中的VALUES(c...
  • woai0324
  • woai0324
  • 2017年05月20日 20:01
  • 2918

MySQL_插入更新 ON DUPLICATE KEY UPDATE

平时我们在设计数据库表的时候总会设计 unique  或者 给表加上 primary key 的限制条件. 此时 插入数据的时候 ,经常会有这样的情况: 我们想向数据库插入一条记录:   若数据表...
  • u010003835
  • u010003835
  • 2017年01月12日 20:49
  • 3685

INSERT ... ON DUPLICATE KEY UPDATE

本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/23557915,转载请注明。       向数据库插入记录时,有时会有这种...
  • ghsau
  • ghsau
  • 2014年04月13日 22:05
  • 50157

mysql存储过程中的on duplicate key update的用法

insert语句的末尾添加on duplicate key update语法:如果插入行出现唯一索引或者主键重复时,则执行旧的update;如果不会导致唯一索引或者主键重复时,就直接添加新行。 例如...
  • jaryle
  • jaryle
  • 2017年07月23日 14:45
  • 268

Mysql中Insert into xxx on duplicate key update问题

要点:Insert into xxx on duplicate key update可以在唯一索引重复的情况下,进行更新操作。           (1) 插入里边的字段应该只有一个 唯一索引;   ...
  • crazyhacking
  • crazyhacking
  • 2013年09月26日 15:58
  • 1456

mysql数据库Insert语句后面加ON DUPLICATE KEY UPDATE,保证唯一性

如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不...
  • nature_fly088
  • nature_fly088
  • 2017年02月08日 14:22
  • 724

Mysql统计技巧:ON DUPLICATE KEY UPDATE用法

ON DUPLICATE KEY UPDATE是mysql的特殊语法,与INSERT INTO一起使用,意思就是记录存在就更新,否则就添加。用法:INSERT INTO user(userid,use...
  • dlming614
  • dlming614
  • 2015年10月12日 16:23
  • 1785

mysql重复插入insert时更新ON DUPLICATE KEY UPDATE

mysql当插入重复时更新的方法: 第一种方法:示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:INSERT INTO clients ...
  • i10630226
  • i10630226
  • 2016年06月25日 19:29
  • 6059
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql"ON DUPLICATE KEY UPDATE"语法简析
举报原因:
原因补充:

(最多只允许输入30个字)