首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >mysql ON DUPLICATE KEY UPDATE 演示

mysql ON DUPLICATE KEY UPDATE 演示

作者头像
oktokeep
发布2024-10-09 08:01:01
发布2024-10-09 08:01:01
4880
举报
文章被收录于专栏:第三方工具第三方工具

<e>查询:INSERT INTO member_test(mem_no,flag)VALUE('111','1')

错误代码: 1062 Duplicate entry '111' for key 'uk_mem_no'

1.创建数据库表演示

代码语言:javascript
复制
CREATE TABLE `member_test` (
  `id` INT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `mem_no` INT(11) NOT NULL,
  `flag` INT(2) NOT NULL DEFAULT '0' COMMENT '是否是测试会员,0不是,1是',
  `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `is_delete` TINYINT(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_mem_no` (`mem_no`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='会员测试信息';

2.在遇到主键冲突的时候,跳过不报错。不主键冲突则新增,否则修改(含本条记录不修改)

代码语言:javascript
复制
#查询
SELECT * FROM member_test;
#初始化
INSERT INTO member_test(mem_no,flag)VALUE('111','1');
#错误代码: 1062 Duplicate entry '111' for key 'uk_mem_no'
INSERT INTO member_test(mem_no,flag)VALUE('111','1');


##有主键冲突修改  影响行数2
INSERT INTO member_test(mem_no,flag)VALUE('111','1')
ON DUPLICATE KEY UPDATE flag = flag - 1;

##无主键冲突新增  影响行数1
INSERT INTO member_test(mem_no,flag)VALUE('222','1')
ON DUPLICATE KEY UPDATE flag = flag;

##有主键冲突无修改 影响行数0
INSERT INTO member_test(mem_no,flag)VALUE('222','1')
ON DUPLICATE KEY UPDATE flag = flag;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

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