锁
查询其他用户的表 <用户名.表名>
锁定模式:
行级锁
行被排他性锁定
在某行的锁被释放之前,其他用户不能修改此行
使用commit rollback命令释放锁
获取行级锁
使用insert、update语句,自动上行级锁
使用select...for update [of 列名] 语句自动获取行级锁
在表的一行或多行放置排他锁,用于防治其他用户更新,删除该行,但是可以执行之外的其他操作。
for update wait 10; 10是等待的秒数, 可以提示其他等待锁的用户,超过10秒将返回给等待用户错误信息(资源已占用)。
表级锁
语法:Lock table<table_name> in <mode>;
三种模式(语法中代替 <mode>):
共享: share mode 其他用户可以查询,不可以增删改。
多个用户可以对同一个表上共享锁。
共享更新:share update mode 锁定要被更新的行,
其他用户可以增删改查未被锁定的行,select...for update就强制使用了共享更新锁。
允许多个用户同时锁定表中不同的行。
排他: exclusive mode 仅允许其他用户查询数据
不允许增删改
在同一时间允许以为用户在表上放置排他锁
后跟no wait立即提示资源正忙
本文详细介绍了数据库中的两种主要锁机制——行级锁和表级锁的工作原理及应用场景。包括如何获取和释放锁,以及不同锁模式下用户操作的限制。
158

被折叠的 条评论
为什么被折叠?



