MySQL ON DUPLICATE KEY UPDATE用法

news/2025/2/22 11:33:02/

在MySQL中,ON DUPLICATE KEY UPDATE是一种在插入数据时,如果遇到重复的键值,则执行更新操作的语法。

使用ON DUPLICATE KEY UPDATE时,需要在插入语句中指定要插入的数据和更新的数据。当插入的数据遇到重复键值时,MySQL会执行更新操作,更新指定的列。

以下是ON DUPLICATE KEY UPDATE的用法和示例:

  1. 创建一个表:
CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(100),age INT
);
  1. 插入数据,如果遇到重复的id,则更新name和age的值:
INSERT INTO students (id, name, age)
VALUES (1, 'John', 20)
ON DUPLICATE KEY UPDATE name = VALUES(name), age = VALUES(age);
  1. 插入多条数据,如果遇到重复的id,则更新name和age的值
INSERT INTO students (id, name, age)
VALUES (1, 'John', 20), (2, 'Jane', 22), (3, 'Mike', 25)
ON DUPLICATE KEY UPDATE name = VALUES(name), age = VALUES(age);

如果id为1的记录已经存在,则更新name和age的值为插入语句中指定的值。如果id为2或3的记录不存在,则插入新的记录。

注意事项:

  • ON DUPLICATE KEY UPDATE只适用于有唯一键或主键的表格
  • 在UPDATE子句中,可以使用VALUES()函数引用插入语句中的值
  • 可以更新多个列的值,每个列之间使用逗号分隔
  • 如果没有重复的键值,插入操作将会正常执行,不会执行更新操作

http://www.ppmy.cn/news/1056030.html

相关文章

Android相机-HAL-Rockchip-hal3

引言: 对于Android相机的 HAL层而言对上实现一套Framework的API接口,对下通过V4L2框架实现与kernel的交互。不同的平台会有不同的实现方案。主要是对Android HAL3的接口的实现。看看rockchip是怎么支持hal3的? 代码目录: hardw…

Java文本块

现实问题: 在Java中,通常需要使用String类型表达HTML,XML,SQL或JSON等格式的字符串,在进行字符串赋值时需要进行转义和连接操作,然后才能编译该代码,这种表达方式难以阅读并且难以维护。 JDK1…

SQLite、MySQL、PostgreSQL3个关系数据库之间的对比

引言 关系数据模型以行和列的表格形式组织数据,在数据库管理工具中占主导地位。今天还有其他数据模型,包括NoSQL和NewSQL,但是关系数据库管理系统(RDBMS)仍然占主导地位用于存储和管理全球数据。 本文比较了三种实现最…

java.lang.UnsupportedOperationException解决方法

java.lang.UnsupportedOperationException解决方法 先放错误信息业务场景报错分析先看报错代码位置进入源码查看至此 真相大白 解决方法总结 先放错误信息 业务场景 已知有学生 张三李四王五赵六 等人 private List<String> nameList Arrays.asList("张三", &…

Java——一个简单的数学题目生成和回答的程序

这段代码是一个简单的数学题目生成和回答的程序。具体分析如下&#xff1a; 导入必要的类&#xff1a; import java.io.*; import java.util.Random;代码中导入了用于输入输出的 java.io 包和生成随机数的 java.util.Random 类。这些类将在后面的代码中使用到。 定义主类和主方…

python编程中fft的优缺点,以及如何使用cuda编程,cuda并行运算,信号处理(推荐)

A.python中cuda编程的库主要有: cupy、pycuda 1,区别如下: 支持的GPU平台: PyCUDA:PyCUDA是一个用于在Python中编写CUDA代码的库。它支持NVIDIA的CUDA平台,并提供了与CUDA C/C++接口相似的功能。因此,PyCUDA主要用于与NVIDIA GPU交互的应用。 CuPy:CuPy是一个用于在P…

开源跨境电商ERP中的7个重要功能点分析

作为开源跨境电商ERP领域的专家&#xff0c;我将为你详细分析关键的功能点&#xff0c;帮助你理解和应用开源跨境电商ERP系统&#xff0c;为你的业务带来突破性的变革。无论你是个体创业者、中小企业主&#xff0c;还是跨国电商巨头&#xff0c;这些功能点将为你的业务流程优化…

Go语言规范:高质量编程及编码规范

一、简介 高质量编程是指以高标准和良好实践来编写可读、可维护、可测试和性能等方面的优秀表现的代码。 各种边界条件是否考虑完备异常情况处理、稳定性保证易读易维护 &#xff08;一&#xff09;编码原则 从指令的角度考虑&#xff0c;开发中应如何编码&#xff0c;才能减…