MySQL 事务排它锁实验:修改admin表格结构并验证锁效果

本实验通过创建admin表格,设置id字段为索引,并模拟两个事务操作,验证MySQL事务中排它锁的效果。

1. 创建表格和索引

CREATE TABLE admin (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

CREATE INDEX idx_id ON admin (id);

2. 事务代码

第一个事务:施加排它锁

BEGIN;
SELECT * FROM admin WHERE id = 1 FOR UPDATE;

第二个事务:尝试修改被锁定的记录

UPDATE admin SET name = 'New Name' WHERE id = 1;

3. 运行结果和分析

  • 在第一个事务中,使用FOR UPDATE语句对id=1的记录施加了排它锁。这意味着其他事务无法修改该记录,直到第一个事务提交或回滚。
  • 在第二个事务中,尝试修改id=1的记录。由于第一个事务持有排它锁,所以第二个事务无法立即修改该记录。第二个事务需要等待第一个事务提交或回滚后才能继续执行。
  • 如果第一个事务提交,则第二个事务可以成功修改id=1的记录。如果第一个事务回滚,则第二个事务无法修改id=1的记录。

4. 结论

综上所述,排它锁可以确保在事务未提交之前,其他事务无法修改被锁定的记录。这对于保证数据一致性和完整性至关重要。

MySQL 事务排它锁实验:修改admin表格结构并验证锁效果

原文地址: https://www.cveoy.top/t/topic/o4lC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录