最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL中replaceinto语句的用法详解_MySQL

来源:动视网 责编:小采 时间:2020-11-09 19:36:49
文档

MySQL中replaceinto语句的用法详解_MySQL

MySQL中replaceinto语句的用法详解_MySQL:在向表中插入数据的时候,经常遇到这样的情况: 1、首先判断数据是否存在; 2、如果不存在,则插入; 3、如果存在,则更新。 在 SQL Server 中可以这样写: 代码如下: if not exists (select 1 from table where id = 1) insert
推荐度:
导读MySQL中replaceinto语句的用法详解_MySQL:在向表中插入数据的时候,经常遇到这样的情况: 1、首先判断数据是否存在; 2、如果不存在,则插入; 3、如果存在,则更新。 在 SQL Server 中可以这样写: 代码如下: if not exists (select 1 from table where id = 1) insert


在向表中插入数据的时候,经常遇到这样的情况:

1、首先判断数据是否存在;
2、如果不存在,则插入;
3、如果存在,则更新。

在 SQL Server 中可以这样写:

代码如下:


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


在MySQL 中也可以先select,判断是否存在,存在则 update 否则 insert
但在MySQL 中有更简单的方法,使用 replace into关键字

代码如下:

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



代码如下:


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


replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中。

1、如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
2、 否则,直接插入新数据。

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

MySQL中replace into有三种写法:

代码如下:


1. replace into table(col, ...) values(...)
2. replace into table(col, ...) select ...
3. replace into table set col=value, ...


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

可惜的是replace不支持update某些特性,也就不能直接当作update使用:

常见update写法:update table set col=col+1 where id=1;
使用replace into不支持这样的写法:replace into table set col=col+1,id=1;

1、首先判断数据是否存在;(没问题)
2、如果不存在,则插入;(没问题)
3、如果存在,某字段值在原来的基础上加上或减去某个数,如加一操作。(不支持)

文档

MySQL中replaceinto语句的用法详解_MySQL

MySQL中replaceinto语句的用法详解_MySQL:在向表中插入数据的时候,经常遇到这样的情况: 1、首先判断数据是否存在; 2、如果不存在,则插入; 3、如果存在,则更新。 在 SQL Server 中可以这样写: 代码如下: if not exists (select 1 from table where id = 1) insert
推荐度:
标签: 使用 re mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top