暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

对MySQL中的数据进行批量插入和更新:通过insert into ... on duplicate key update实现

原创 螺竹编程 2023-09-28
295

目录


  1. 语法介绍
  2. 示例

语法介绍

01


INSERT INTO... ON DUPLICATE KEY UPDATE 是一种在 MySQL 数据库中执行插入操作并在遇到重复键时执行更新操作的语句。它的语法如下:
    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, value2, ...)
    ON DUPLICATE KEY UPDATE column1 = value1, column2 = value2, ...
    这里是对该语句的详细解释:
    • INSERT INTO table_name: 指定要插入数据的目标表名称。

    • (column1, column2, ...): 列出要插入数据的列名称。

    • VALUES (value1, value2, ...): 指定要插入的值。

    • ON DUPLICATE KEY UPDATE: 指定在遇到重复键时执行的更新操作。

    • column1 = value1, column2 = value2, ...: 指定要更新的列及其对应的新值。

    当执行 INSERT 操作时,如果插入的数据违反了表的唯一约束(例如,违反了主键或唯一索引),就会触发重复键错误。此时,ON DUPLICATE KEY UPDATE 子句会生效,允许您在出现重复键时执行更新操作而不是抛出错误。

    ON DUPLICATE KEY UPDATE 子句中,您可以指定要更新的列以及它们的新值。通常,您可以使用 VALUES(column_name) 表达式来引用插入语句中相应列的值。

    示例

    02


    下面是一个示例,假设我们有一个名为 users 的表,其中包含 idname 列,id 是主键。
      CREATE TABLE users (
      id INT PRIMARY KEY,
      name VARCHAR(50)
      );
      我们想要插入一行数据,如果出现重复的 id,则更新 name 的值。
        INSERT INTO users (id, name)
        VALUES (1, 'John')
        ON DUPLICATE KEY UPDATE name = VALUES(name);

        在这个示例中,如果 id 为 1 的行已经存在,那么 name 的值将被更新为 'John'。如果该行不存在,将插入一行新数据。

        1.  宝藏网站推荐:一个系统学习编程的网站

        最后修改时间:2025-03-25 23:52:03
        文章转载自螺竹编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论