首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 当记录不存在时 insert,当记录存在时 update,语句怎么写?

MySQL 当记录不存在时 insert,当记录存在时 update,语句怎么写?

原创
作者头像
代码小李
发布2025-02-03 15:42:46
发布2025-02-03 15:42:46
1.3K0
举报

在 MySQL 中,你可以使用 INSERT ... ON DUPLICATE KEY UPDATE 语句来实现“当记录不存在时插入,当记录存在时更新”的功能。这个语句的工作原理是:如果插入的记录在表中已经存在(根据唯一索引或主键判断),则执行更新操作;否则,执行插入操作。

假设你有一个表 users,其结构如下:

代码语言:sql
复制
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100) UNIQUE
);

你可以使用以下语句来实现你的需求:

代码语言:sql
复制
INSERT INTO users (name, email)
VALUES ('John Doe', 'john@example.com')
ON DUPLICATE KEY UPDATE
    name = VALUES(name),
    email = VALUES(email);

在这个例子中:

  • 如果 email'john@example.com' 的记录不存在,则插入一条新记录。
  • 如果 email'john@example.com' 的记录已经存在,则更新该记录的 nameemail 字段。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档