Mysql存在则修改不存在则新增的两种实现方法实例

1. 前言

MySQL是一款关系型数据库管理系统,广泛地应用于各个领域中。在实际应用当中,我们经常需要对数据库表进行数据的插入、修改、删除操作。本文主要介绍两种MySQL操作表时,存在执行更新,不存在执行插入的方法。

2. IF语句实现更新、插入操作

2.1 实现原理

这种实现方法采用MySQL的IF语句实现,其主要思路为:先查询表中是否存在符合条件的记录,如果存在,则执行更新语句,如果不存在,则执行插入语句。

2.2 代码实现

IF EXISTS (SELECT * FROM `表名` WHERE `条件`) THEN

UPDATE `表名` SET `列名`=值 WHERE `条件`;

ELSE

INSERT INTO `表名`(`列名1`, `列名2`, ...) VALUES (值1, 值2, ...);

END IF;

示例代码:

IF EXISTS (SELECT * FROM `student` WHERE `name`='张三') THEN

UPDATE `student` SET `age`=20 WHERE `name`='张三';

ELSE

INSERT INTO `student`(`name`, `age`) VALUES ('张三', 20);

END IF;

3. ON DUPLICATE KEY UPDATE方法实现更新、插入操作

3.1 实现原理

这种实现方法采用MySQL的ON DUPLICATE KEY UPDATE方法实现,其主要思路为:在插入语句中加入关键字ON DUPLICATE KEY UPDATE,如果插入数据时,发现有重复的数据,则执行更新操作,不重复则插入新数据。

3.2 代码实现

INSERT INTO `表名`(`列名1`, `列名2`, ..)

VALUES (值1, 值2, ...)

ON DUPLICATE KEY UPDATE `列名`=值, `列名`=值, ...;

示例代码:

INSERT INTO `student`(`name`, `age`)

VALUES ('张三', 20)

ON DUPLICATE KEY UPDATE `age`=20;

注:这种方法需要保证表中要加一个唯一索引或主键,才能产生作用。

4. 两种实现方法对比

IF语句实现更新、插入操作的方法相对简单,容易理解,操作上也更加直接,但是相应的,效率较低,并且需要人为编写查询语句,容易出现错误。

ON DUPLICATE KEY UPDATE方法相对来说,操作简单,效率也较高,但是需要添加唯一索引或主键,操作上稍微有点繁琐。

5. 总结

无论是IF语句实现更新、插入操作还是ON DUPLICATE KEY UPDATE方法实现更新、插入操作都有其各自的优缺点。根据实际应用情况,选择更适合的方法才是最好的选择。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签