应用开发

MySQL 核心模块揭秘 | 插入记录,主键索引冲突加什么锁?

字号+作者:益华科技来源:IT科技2025-11-03 23:49:00我要评论(0)

1. 准备工作创建测试表:复制CREATE TABLE `t1` ( `id` int unsigned NOT NULL AUTO_INCREMENT,

1. 准备工作

创建测试表:复制CREATE TABLE `t1` ( `id` int unsigned NOT NULL AUTO_INCREMENT,心模 `i1` int DEFAULT 0, PRIMARY KEY (`id`) USING BTREE, KEY `idx_i1` (`i1`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;1.2.3.4.5.6.

插入测试数据:

MySQL 核心模块揭秘 | 插入记录,主键索引冲突加什么锁?

复制INSERT INTO `t1` (`id`, `i1`) VALUES (10, 101), (20, 201), (30, 301), (40, 401);1.2.

2. 加锁情况

t1 表中已经有一条 <id = 10> 的记录,我们执行以下 insert 语句,免费信息发布网块揭再插入一条 <id = 10> 的秘插记录。服务器租用

复制begin; insert into t1(id,入记 i1) values (10, 1010);1.2.

因为新插入记录和表中原有记录存在主键冲突,执行 insert 语句之后,亿华云录主报错如下:

复制(1062,键索 "Duplicate entry 10 for key t1.PRIMARY")1.

执行以下 select 语句查询加锁情况:

复制select engine_transaction_id, object_name, lock_type, lock_mode, lock_status, lock_data from performance_schema.data_locks where object_name = t1 and lock_type = RECORD\G

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • X99装机教程(选择X99主板,为你的装机之路带来巅峰体验)

    X99装机教程(选择X99主板,为你的装机之路带来巅峰体验)

    2025-11-03 23:41

  • MySQL 核心模块揭秘 — 什么时候释放锁?

    MySQL 核心模块揭秘 — 什么时候释放锁?

    2025-11-03 23:25

  • HPE敏感数据疑遭IntelBroker黑客窃取

    HPE敏感数据疑遭IntelBroker黑客窃取

    2025-11-03 23:17

  • 如何处理项目中的慢SQL:一种系统化方法

    如何处理项目中的慢SQL:一种系统化方法

    2025-11-03 22:42

网友点评