Mysql onduplicate key
来源:互联网 发布:miss淘宝店外设 编辑:程序博客网 时间:2024/06/05 20:43
mysql "ON DUPLICATE KEY UPDATE" 语法
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。
例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:
INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1;
UPDATE TABLE SET c=c+1 WHERE a=1;
如果行作为新记录被插入,则受影响行的值显示1;如果原有的记录被更新,则受影响行的值显示2。
这个语法还可以这样用:
如果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标准语法!
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。
例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:
复制代码代码如下:
INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1;
UPDATE TABLE SET c=c+1 WHERE a=1;
如果行作为新记录被插入,则受影响行的值显示1;如果原有的记录被更新,则受影响行的值显示2。
这个语法还可以这样用:
如果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标准语法!
0 0
- Mysql onduplicate key
- mysql primary key key
- Mysql--key
- foreign key of Mysql
- mysql-front 5 key
- mysql forige key
- mysql 约束( key constraints )
- mysql-front的key
- mysql foreign key(外键)
- Mysql KEY 解释
- mysql foreign key
- mysql foreign key
- MySQL--FOREIGN KEY
- MySQL(Foreign Key)外键
- MYSQL中KEY问题
- mysql 中的 unique key
- mysql index and key
- Mysql修改unique key
- MyBatis分页插件的reasonable属性
- 单例设计模式
- gcd(线段树离线处理)——HDU 4630
- js加alert才执行函数解决办法
- layout_gravity不起作用的原因分析
- Mysql onduplicate key
- 线程中start和run的区别
- Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)
- 【连载】实用小demo连载 3 —— js 时间转换 demo
- RHEL 7 中 systemctl 的用法(替代service 和 chkconfig)
- 回调函数的理解,以及java例子程序
- Android开发问题集合
- HDOJ 1166 敌兵布阵 树状数组和线段树
- [LeetCode] Unique Binary Search Trees II