奥门巴黎人手机网址【app】

深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析_Mysql_脚本之家

2019-12-10 12:49·澳门巴黎人最新网址

后天做判定插入用到了MySQL中ON DUPLICATE KEY UPDATE,今后Mark以下!

mysql "ON DUPLICATE KEY UPDATE" 语法要是在INSERT语句末尾钦赐了ON DUPLICATE KEY UPDATE,並且插入行后会引致在四个UNIQUE索引或P牧马人IMAENCOREY KEY中现身重复值,则在出现重复值的行推行UPDATE;纵然不会造成唯朝气蓬勃值列重复的标题,则插入新行。 举例,借使列 a 为 主键 或 具备UNIQUE索引,何况带有值1,则以下多个语句具备相符的效应:复制代码 代码如下:INSERT INTO TABLE ON DUPLICATE KEY UPDATE c=c+1;UPDATE TABLE SET c=c+1 WHERE a=1;假若行作为新记录被插入,则受影响行的值展现1;假如原来的笔录被更新,则受影响行的值展现2。 那几个语法还能那样用: 即使INSERT多行记录(纵然 a 为主键或 a 是叁个UNIQUE索引列卡塔尔(英语:State of Qatar):复制代码 代码如下:INSERT INTO TABLE , ON DUPLICATE KEY UPDATE c=c+1;实行后, c 的值会变为 4 .复制代码 代码如下:INSERT INTO TABLE , ON DUPLICATE KEY UPDATE c=VALUES;推行后, c 的值会变为 7 (第二条与第一条重复, c 在直接取重复的值7卡塔尔(قطر‎. 注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL规范语法! 那个语法和切合用在急需 推断记录是还是不是存在,不设有则插入存在则更新的场景.INSERT INTO .. ON DUPLICATE KEY更新多行记录若是在INSERT语句末尾内定了ON DUPLICATE KEY UPDATE,而且插入行后会导致在一个UNIQUE索引或PTucsonIMAMuranoY KEY中冒出重复值,则施行旧行UPDATE;假诺不会促成唯意气风发值列重复的难题,则插入新行。比如,假诺列a被定义为UNIQUE,况且包蕴值1,则以下多少个语句具备同等的效果:复制代码 代码如下:INSERT INTO TABLE ON DUPLICATE KEY UPDATE c=c+1;UPDATE TABLE SET c=c+1 WHERE a=1;要是行作为新记录被插入,则受影响行的值为1;假诺原来的笔录被更新,则受影响行的值为2。即使你想精晓越多关于INSERT INTO .. ON DUPLICATE KEY的成效表明,详见MySQL参考文档:13.2.4. INSERT语法现行难点来了,即使INSERT多行记录, ON DUPLICATE KEY UPDATE前面字段的值怎么钦赐?要知道一条INSERT语句中必须要有几个ON DUPLICATE KEY UPDATE,到底他会更新意气风发行记录,依旧更新具有需求创新的行。那些标题烦恼了本人非常久了,其实使用VALUES(卡塔尔国函数一切难题都湮灭了。举个例子,字段a被定义为UNIQUE,况且原数据库表table中已存在记录,要是插入记录的a值与原来记录重复,则更新原有记录,不然插入新行:复制代码 代码如下:INSERT INTO TABLE ,,ON DUPLICATE KEY UPDATE b=VALUES;以上SQL语句的实践,开掘产生唯生龙活虎值冲突,则施行ON DUPLICATE KEY UPDATE,将原来记录,将,插入新记录注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,而不是SQL标准语法!

科技世界,意气风发经你想做到数据库中从未多少的话插入数据、有数据的话更新数据,那么你能够筛选ON DUPLICATE KEY UPDATE。

ON DUPLICATE KEY UPDATE能够在UNIQUE索引或P凯雷德IMAQashqaiY 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索引列卡塔尔(英语:State of Qatar):