mysql 共享(mysql共享锁和排他锁:示例代码)

qianduangongchengshi

温馨提示:这篇文章已超过230天没有更新,请注意相关的内容是否还可用!

mysql 共享(mysql共享锁和排他锁:示例代码)

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未提交之前,其他事务无法读取或写入同一行数据。

通过使用共享锁和排他锁,我们可以控制并发访问数据库的行为,确保数据的一致性和完整性。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码