首批通过分布式安全可靠测评,为关键业务系统打造
LOCK TABLE
更新时间:2023-07-28 10:45:58
描述
该语句根据指定模式锁定一个或多个表、表的分区或者二级分区。
上锁的表将保持上锁状态,直至事务提交、回滚或者回滚到上锁前的 Savepoint。
说明
要锁定的表必须在用户自己的 Schema 中,或者用户必须具有 LOCK ANY TABLE 系统权限。
语法
LOCK TABLE [ schema. ] table_name
IN lock_mode MODE
[ NOWAIT
| WAIT integer
] ;
语法说明
| 字段名称 | 描述 |
|---|---|
| table_name | 指定要锁定的表的名称。 |
| lock_mode | 指定锁定模式。OceanBase 数据库当前版本所支持的锁定模式如下:
|
| NOWAIT | 如果对执行的表、分区或者二级分区上锁时发生锁冲突,则指定 NOWAIT 可以让数据库立即将控制权返回给您。在这种情况下,数据库会返回一条消息,以告知表、分区或子分区已被另一个用户锁定。 |
| WAIT | 如果发生锁冲突,那么语句应该等待冲突的锁释放,直到超时。integer 的值没有限制。说明 OceanBase 数据库当前版本的 NOTWAIT 和 WAIT 都不生效,使用的是所设置的语句超时时间和事务的超时时间的最小值,即等待锁定直到语句超时或者事务超时。 |
示例
以 EXCLUSIVE 模式锁定 tbl1 表,但如果其他用户已锁定该表,则不会等待。
obclient> LOCK TABLE tbl1 IN EXCLUSIVE MODE NOWAIT;
Query OK, 0 row affected