您当前的位置: 首页 >  sql

梁云亮

暂无认证

  • 3浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

mysql 中replace into语法

梁云亮 发布时间:2022-09-26 13:09:41 ,浏览量:3

在分布式中,数据自增ID机制的原理:数据库自增ID是通过MySQL的replace into实现的。

这个replace into和insert类似,不同点在于:replace into首先尝试插入数据列表中,如果发现表中已经有此行数据(根据主键或者唯一索引判断),则先删除旧数据再插入,否则直接插入新数据。

示例:

  1. 创建数据表:
CREATE TABLE `tb_test` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(8) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

注意:字段name唯一。

  1. 执行下面语句往表中插入一条数据
insert into tb_test (name) values ('zhangsan')
  1. 查看新增记录的ID
SELECT LAST_INSERT_ID()

结果: 在这里插入图片描述

  1. 再次执行第2步中的插入语句,结果报错: 在这里插入图片描述
  2. 执行如下replace into语句插入数据:
replace into tb_test (name) values ('lisi')
  1. 执行第3步查看id 在这里插入图片描述 查看表中的数据 在这里插入图片描述

  2. 再次执行第5步中的replace into语句 在这里插入图片描述

  3. 执行第3步查看id 在这里插入图片描述 而查看表中的数据只有两条 在这里插入图片描述 多次执行replace into语句,再次查看表中的数据,发现id增加了。 在这里插入图片描述

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0390s