首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 如何实现重复插入时更新

MySQL 如何实现重复插入时更新

作者头像
Denis
发布2023-04-15 10:19:00
发布2023-04-15 10:19:00
1.7K0
举报
文章被收录于专栏:WordPress果酱WordPress果酱

最近 MySQL 数据库经常报错 Duplicate key 的错误,虽然我已经在 Insert 之前使用 query 进行了判断,如果已有则更新,但是还是经常会报这个错误,经过一段查询资料,发现 MySQL 已经提供了两种解决方法:

ON DUPLICATE KEY UPDATE

这个方法就是在 Insert 语句的时候,加上这个语句,如果数据库里面已有则更新。比如:

代码语言:javascript
复制
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;

我们还可以在 UPDATE 子句中使用 VALUES(col_name )函数从 INSERT 部分引用列值:

代码语言:javascript
复制
INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

插入多行情况:

代码语言:javascript
复制
INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

REPLACE INTO

REPLACE INTO 则会先删除数据,然后再插入。

代码语言:javascript
复制
REPLACE INTO table (a,b,c) VALUES (1,2,3);

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • ON DUPLICATE KEY UPDATE
  • REPLACE INTO
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档