码迷,mamicode.com
首页 > 数据库 > 详细

MySQL中ON DUPLICATE KEY UPDATE使用

时间:2014-06-02 18:04:36      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   a   

今天做推断插入用到了MySQL中ON DUPLICATE KEY UPDATE,如今Mark下面!

假设你想做到数据库中没有数据的话插入数据、有数据的话更新数据,那么你能够选择ON DUPLICATE KEY UPDATE。

ON DUPLICATE KEY UPDATE可以在UNIQUE索引或PRIMARY KEY存在的情况下对旧行运行UPDATE操作。

比如:假设列a被定义为UNIQUE,而且包括值1,则下面两个语句具有同样的效果:

      INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c = c + 1,b = b - 1;
      UPDATE table SET c = c + 1,b = b - 1 WHERE a = 1;


比如:如果INSERT多行记录(如果 a 为主键或 a 是一个 UNIQUE索引列): 

      INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c = c + 1;

运行后,c 的值会变为 4 (第二条与第一条反复, c 在原值上+1)。

      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标准语法! 

官方文档參照:dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#insert


MySQL中ON DUPLICATE KEY UPDATE使用,布布扣,bubuko.com

MySQL中ON DUPLICATE KEY UPDATE使用

标签:c   style   class   blog   code   a   

原文地址:http://www.cnblogs.com/mengfanrong/p/3764406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!