mysql 存在该记录则更新,不存在则插入记录的sql
发布时间:2024-01-29 07:19:24
标签:mysql,存在则更新,不存在则插入
INSERT table (auto_id, auto_name) values (1, ‘yourname') ON DUPLICATE KEY UPDATE auto_name='yourname'
ON DUPLICATE KEY UPDATE的使用
如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:
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;
如果行作为新记录 * 入,则受影响行的值为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选项被忽略。
0
投稿
猜你喜欢
- 基本概述我们知道MySQL有2种方式指定复制同步的方式,分别为:基于binlog文件名及位点的指定方式 - 匿名事
- 问题一个已经有内容的 textarea 元素,在执行该元素的 .focus() 方法后,不同的浏览器有不同表现。我们的预期是能够出现在内容后
- 为新项目写的一份规范文档, 分享给大家. 我想前端开发过程中, 无论是团队开发, 还是单兵做站, 有一份开发文档做规范, 对开发工作都是很有
- 在爬一个网站的时候,端点包含中文浏览器是可以自动解决这个转换的,在代码中就需要处理一下了。请求过程的异常如下:self._output(re
- 前言有的时候我们在查看数据库数据时,会看到乱码。实际上,无论何种数据库只要出现乱码问题,这大多是由于数据库字符集设定的问题。下面我们就介绍一
- 用XMlhttp生成html页面,相关函数如下:<% ’定义xmlhttp function Get
- re.findall()在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。语法格式:re.find
- 公司客户在使用网站后台编辑添加修改内容时,经常是直接从word文档里复制内容到编辑器里后就提交。结果是在内容显示页面上是五花八门的样式,有时
- 本文实例讲述了golang的HTTP基本认证机制。分享给大家供大家参考,具体如下:看了<<http权威指南>>第12
- The Only Thing We Have To Fear Is Premature Standardization原文地址:http:/
- 本文实例讲述了Go语言实现AzDG可逆加密算法。分享给大家供大家参考。具体实现方法如下:package mainimport (
- 我的主要思路是:Excel -> Html -> Image代码如下:# -*- coding:utf-8 -*-__autho
- 當我們有很多筆的條件要對資料庫進行搜尋時,常常會用到下列的語法 SELECT * FROM Member WHERE accun
- 现在公布方法:替换editor.js 函数 // Toolbar button onmouseup
- 本文实例讲述了Python操作列表常用方法。分享给大家供大家参考,具体如下:使用for循环,遍历整个列表依次从列表中取出元素,存放到name
- 在给blog加上无刷新搜索和即时验证检测后,又看了下代码,感觉太过麻烦,就把XMLHttpRequest请求封装到一个类里面,用起来方便多了
- 1 索引基础1.1 索引作用在MySQL中,查找数据时先在索引中找到对应的值,然后根据匹配的索引记录找到对应的数据行,假如要运行下面查询语句
- 一、前言一个非常强的反爬虫方案 —— 禁用所有 HTTP 1.x 的请求!现在很多爬虫库其实对 HTTP/2.0 支持得不好,比如
- opencv图像处理(深度学习中常用的)改变色彩空间: cv.cvtColor()cv.cvtColor(img, flag)img:原图像
- 目录1. 字符串拆分函数.split()2. 字符串拼接函数.join()扩展:理解" ".join(s.split(&