100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > mysql数据库 一条语句实现记录存在则更新 不存在则插入

mysql数据库 一条语句实现记录存在则更新 不存在则插入

时间:2023-04-03 21:23:01

相关推荐

mysql数据库 一条语句实现记录存在则更新 不存在则插入

问题产生

博主相信很多人在开发的时候难免会出现需要先判断某个记录是否存在,存在则更新,不存在则插入新记录的情况(如在填写报名表的时候有用户需要修改信息等)。通常的做法是先使用 DELETE 语句先删除一下再使用 INSERT INTO 语句插入,这样做显然效率会比较低。

解决办法

MySQL 为我们提供了一个新的途径可以方便地实现仅执行一条 SQL 语句达成这个操,那就是 REPLACE INTO 语句。

使用方法

语句格式:

REPLACE INTO 表名(列名1, 列名2, ..., 列名n) VALUES (值1, 值2, ..., 值n);

例如:

REPLACE INTO students (StuName, Stuid, Class) VALUES ('张三', '123456789', '1234567');

语句原理

REPLACE INTO 语句要求被插入的表需要有已经定义的主键,该语句通过对主键进行检索判断记录是否存在,若记录存在,则对非主键属性进行更新操作;若记录不存在,则插入一条新记录。

.1.7 更新:此处的更新操作指的是按新的数据覆盖该主键标识的记录,而不是针对某些列进行更新

受影响的行数

当相同主键记录存在,且欲更新的数据与已存在的数据完全相同时(即此时什么都不做),受影响的行数为 1。

当相同主键记录存在,且欲更新的数据与已存在的数据不完全相同时(即此时会更新数据),受影响的行数为 2。

当相同主键记录不存在时,将插入一条新的记录,受影响的行数为 1。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。