DM 的隐式封锁足以保证数据的一致性,但用户可以根据自己的需要手工显式锁定表,允许或禁止在当前用户操作期间其它用户对此表的存取。DM 提供给用户四种表锁的封锁:
意向共享锁(IS)、共享锁(S)、意向排他锁(IX)和排他锁(X)。
1. 意向共享表封锁:INTENT SHARE TABLE LOCKS (IS)
该封锁表明该事务封锁了表上的一些元组并试图修改它们(但是还未做修改,其它事务可读这些元组,但是不能修改这些元组)。意向共享表封锁是限制最少的锁,提供了表上最大的并发度。
1) 允许操作:
其他事务对该表的并发查询、插入、更新、删除或在该表上进行封锁,其他事务可以同时上意向共享锁(IS)、意向排他锁(IX)、共享锁(S)。
2) 禁止操作:
其它事务以排他锁方式(X)存取该表。
LOCK TABLE tablename IN EXCLUSIVE MODE;
2. 意向排他表封锁:INTENT EXCLUSIVE TABLE LOCKS (IX)