image

编辑人: 沉寂于曾经

calendar2025-05-31

message7

visits263

mysql面试题:mysql如何实现插入时如果不存在则插入如果存在则更新的操作?

在Oracle中有merge into来实现记录已存在就更新的操作,mysql没有merge into语法,但是有replace into的写法,同样实现记录已存在就更新的操作。
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 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 将自动为这些列赋上默认值。



喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:mysql面试题:mysql如何实现插入时如果不存在则插入如果存在则更新的操作?

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share