讨人喜欢的 MySQL replace into 用法(insert into 的增强版)

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

在 SQL Server 中可以这样处理:

   if not exists (select 1 from t where id = 1)insert into t(id, update_time) values(1, getdate())elseupdate 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 将自动为这些列赋上默认值。

转载于:https://www.cnblogs.com/liuzhuqing/p/7373249.html

MySQL:讨人喜欢的 MySQL replace into 用法(insert into 的增强版)相关推荐

  1. MySQL replace into (insert into 的增强版)

    在使用SQL语句进行数据表插入insert操作时,如果表中定义了主键,插入具有相同主键的记录会报错:  Error Code: 1062. Duplicate entry 'XXXXX' for ke ...

  2. oracle insert replace into,讨人喜欢的 MySQL replace into 用法(insert into 的增强版)

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

  3. mysql数据库replace写入_MySQL数据库replace into 用法(insert into 的增强版)

    MySQL数据库replace into 用法我以前介绍过相关的教程,但有加强版各位朋友可能不知道吧,今天我们来看一篇关于MySQL数据库replace into增强版的介绍与用法例子. Error ...

  4. mysql的replace_mySQL中replace的用法

    mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...

  5. MySQL replace into 用法

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

  6. 详解MySQL字符串函数CONCAT()、CONCAT_WS()、INSERT()、REPLACE()、LOWER()、UPPER()用法(二)

    文章目录 一.合并字符串函数CONCAT()和CONCAT_WS() 1.CONCAT() 2.CONCAT_WS() 二.替换字符串INSERT()和REPLACE 1.INSERT() 2.REP ...

  7. mysql replace into 语法_mysql Replace into与Insert update

    Replace into replace into 跟 insert 功能类似, 不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引 ...

  8. mysql中 REPLACE INTO 和 INSERT INTO 的区别

    mysql中 REPLACE INTO 和 INSERT INTO 的区别 REPLACE INTO 和 INSERT INTO 功能类似,都是像表中插入数据,不同点在于:REPLACE INTO 首 ...

  9. mysql 中 replace into 与 insert into on duplicate key update 的使用和不同点

    replace into和insert into on duplicate key update都是为了解决我们平时的一个问题 就是如果数据库中存在了该条记录,就更新记录中的数据,没有,则添加记录. ...

最新文章

  1. [引]ASP.NET 中 事务处理(SqlTransaction)示例
  2. C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法
  3. 《研磨设计模式》chap22 装饰模式Decorator(3)I/O流
  4. 【java】简述CGLIB常用API
  5. 如何保证mq的有序性_消息队列如何保证顺序性?
  6. PHP统计链接跳转的次数,如何在PHP页面统计某链接的点击数
  7. 【报告分享】2021最具价值中国品牌100强报告.pdf(附下载链接)
  8. ORA-12638处理
  9. 中国第一朵云,花了足足9年
  10. matlab与焓湿图,excel与焓湿图的完美结合
  11. Java 坐标系相互转换
  12. SPSS实现单样本t检验
  13. 有关AntDesign的简单学习
  14. 中小企业网站优化推广思路方法技巧
  15. 还在为关闭不了win10杀毒软件windows defender而崩溃吗?小编三招教你如何彻底关闭
  16. EXCEL数据计算结果不对
  17. javascript弹出一个弹窗
  18. [DX10游戏教程(C++)]教程1:在Visual Studio 2012中配置DirectX 10
  19. Java数组之一维数值数组之成绩统计
  20. Median Pyramid Hard题解

热门文章

  1. Android 获取标题栏的高度
  2. .NET面向上下文、AOP架构模式(实现)
  3. 关于yum库的相关问题
  4. DWZ基于ajax重复请求的修复
  5. 企业信息化所面临的问题
  6. 共识机制:区块链技术的根基
  7. meetup_我在2017年举办Meetup中学到的知识以及为何对2018年充满期待。
  8. golang 命令行_如何使用Golang编写快速有趣的命令行应用程序
  9. 大量数据转移_大量数据
  10. BFS:走出迷宫并输出最小步数