文档章节

MySQL replace into 用法(insert into 的增强版)

五大三粗
 五大三粗
发布于 2015/05/18 12:43
字数 361
阅读 15
收藏 0

REPLACE INTO user_se_sum  SELECT * FROM config_user_se_sum;

 

 

 

在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。

在 SQL Server 中可以这样处理:

   if not exists (select 1 from t where id = 1)
      insert into t(id, update_time) values(1, getdate())
   else
      update t set update_time = getdate() where id = 1

那么 MySQL 中如何实现这样的逻辑呢?别着急!MySQL 中有更简单的方法: replace into

replace into t(id, update_time) values(1, now());



replace into t(id, update_time) select 1, now();

replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。

要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。
MySQL replace into 有三种形式:

1. replace into tbl_name(col_name, ...) values(...)
2. replace into tbl_name(col_name, ...) select ...
3. replace into tbl_name set col_name=value, ...

前两种形式用的多些。其中 “into” 关键字可以省略,不过最好加上 “into”,这样意思更加直观。另外,对于那些没有给予值的列,MySQL 将自动为这些列赋上默认值。

© 著作权归作者所有

共有 人打赏支持
五大三粗
粉丝 160
博文 2264
码字总数 4712446
作品 0
广州
程序员
私信 提问
讨人喜欢的 MySQL replace into 用法(insert into 的增强版)

讨人喜欢的 MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。 在 ...

凡16
2014/03/07
0
0
MySQL replace into 用法

讨人喜欢的 MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。 在 ...

王锐
2012/07/06
0
0
Mysql中replace into用法详细说明

Replace into是Insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。 在SQL Server中可以这样处理...

Junn
2013/02/25
0
0
mySQL中replace的用法

MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪 mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc...

云栖希望。
2017/12/04
0
0
避免MySQL替换逻辑SQL的坑爹操作

replace into和insert into on duplicate key 区别 replace的用法 当不冲突时相当于insert,其余列默认值 当key冲突时,自增列更新,replace冲突列,其余列默认值 Comreplace会加1 Innodbrow...

dbapower
07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

git 常用命令

本文档适合有一定git使用基础的用户,当使用时忘记使用命令可以起参考作用,新手请移步其他详细教程 下载安装 下载git完成之后,配置用户 $ git config --global user.name "Your Name"$ g...

杨鹏飞乀
1分钟前
0
0
返回历史页面,并刷新该历史页面

原来 还真的有 可以 返回历史 上一个页面,并刷新历史页面的 API的, 之前以为没有,所以只能每次返回 上一个页面的时候,都是直接 写上了 该页面的路径, 也就是直接去访问了。 而document....

之渊
3分钟前
0
0
MaxCompute新功能发布

2018年Q3 MaxCompute重磅发布了一系列新功能。 本文对主要新功能和增强功能进行了概述。 实时交互式查询:Lightning on MaxCompute 生态兼容:Spark on MaxCompute New SQL 新特性发布 Pyth...

阿里云云栖社区
4分钟前
0
0
PHP实现excel导入

1、前端写法 <input type="file" name="myfile" id="uploadingFiles" value="上传excel文件" /> <input type="text" name="mode" id="uploadingmode" value="" /> <button id="determin" cl......

葬-花
5分钟前
0
0
SpringBoot打jar包或war包获取不到资源文件解决办法

问题描述 在开发过程中我们经常会碰到要在代码中获取资源文件的情况,而我在最近将原有的Tomcat的原生项目迁移到SpringBoot项目中时碰到一个问题,就是在本地运行时,获取本地的xml资源文件是...

不学无数的程序员
11分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部