600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > mysql 存在该记录则更新 不存在则插入记录的sql【MySQL】

mysql 存在该记录则更新 不存在则插入记录的sql【MySQL】

时间:2019-08-14 16:20:34

相关推荐

mysql 存在该记录则更新 不存在则插入记录的sql【MySQL】

数据库|mysql教程

values,mysql,记录

数据库-mysql教程

INSERT table (auto_id, auto_name) values (1, ‘yourname’) ON DUPLICATE KEY UPDATE auto_name=’yourname’

h5自适应企业网站源码,vscode结构体变量选择,ubuntu安装ccms,tomcat修改url限制,爬虫开源平台,php 数值转换成字符串,浙江抖音seo优化搜索排名,商城源码 商城网站源码 购物网站源码lzw

ON DUPLICATE KEY UPDATE的使用

如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:

汽车租赁系统网站源码,在ubuntu安装软件,直接关服务器tomcat,编写爬虫的步骤,php素数和合数判断的程序,seo 首页标题lzw

mysql> INSERT INTO table (a,b,c) VALUES (1,2,3)

-> ON DUPLICATE KEY UPDATE c=c+1;

mysql> UPDATE table SET c=c+1 WHERE a=1;

vstart源码,vscode怎么运行html,ubuntu 视频,tomcat作用,for sqlite,好看的国外网页设计,织梦后台管理系统的数据怎么上传到数据库里面去,ftp服务器的ip地址查询,jquery zoom插件 下载,最流行前端框架,公众号爬虫,php管理系统,seo的网站,部署springboot项目,javascript 代码写在外部引用外部标签里面,ckplayer看电影网站,网页菜单显示英文,框架结构 模板,织梦后台管理界面模板,bootstrap产品展示页面,erp企业管理系统源码,批发网站程序lzw

如果行作为新记录被插入,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2。

注释:如果列b也是唯一列,则INSERT与此UPDATE语句相当:

mysql> UPDATE table SET c=c+1 WHERE a=1 OR b=2 LIMIT 1;

如果a=1 OR b=2与多个行向匹配,则只有一个行被更新。通常,您应该尽量避免对带有多个唯一关键字的表使用ON DUPLICATE KEY子句。

您可以在UPDATE子句中使用VALUES(col_name)函数从INSERT…UPDATE语句的INSERT部分引用列值。换句话说,如果没有发生重复关键字冲突,则UPDATE子句中的VALUES(col_name)可以引用被插入的col_name的值。本函数特别适用于多行插入。VALUES()函数只在INSERT…UPDATE语句中有意义,其它时候会返回NULL。

示例:

mysql> INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)

-> ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

本语句与以下两个语句作用相同:

mysql> INSERT INTO table (a,b,c) VALUES (1,2,3)

-> ON DUPLICATE KEY UPDATE c=3;

mysql> INSERT INTO table (a,b,c) VALUES (4,5,6)

-> ON DUPLICATE KEY UPDATE c=9;

当您使用ON DUPLICATE KEY UPDATE时,DELAYED选项被忽略。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。