温馨提示:这篇文章已超过230天没有更新,请注意相关的内容是否还可用!
MySQL中的共享锁和排他锁是用于控制并发访问数据库的一种机制。共享锁(也称为读锁)允许多个事务同时读取同一行数据,而排他锁(也称为写锁)则只允许一个事务进行写操作,其他事务无法同时读取或写入该行数据。
示例代码如下:
1. 共享锁示例:
-- 事务A获取共享锁
START TRANSACTION;
SELECT * FROM table_name WHERE id = 1 LOCK IN SHARE MODE;
-- 在事务A未提交之前,其他事务可以读取同一行数据
SELECT * FROM table_name WHERE id = 1;
COMMIT;
在上述示例中,事务A首先获取了一个共享锁,然后可以读取id为1的行数据。在事务A未提交之前,其他事务也可以读取同一行数据,但是无法进行写操作。
2. 排他锁示例:
-- 事务B获取排他锁
START TRANSACTION;
SELECT * FROM table_name WHERE id = 1 FOR UPDATE;
-- 在事务B未提交之前,其他事务无法读取或写入同一行数据
UPDATE table_name SET column_name = 'new_value' WHERE id = 1;
COMMIT;
在上述示例中,事务B首先获取了一个排他锁,然后可以读取和写入id为1的行数据。在事务B未提交之前,其他事务无法读取或写入同一行数据。
通过使用共享锁和排他锁,我们可以控制并发访问数据库的行为,确保数据的一致性和完整性。
文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。