UNLOCK TABLE 语句

在不支持事务日志记录的数据库中,使用 UNLOCK TABLE 语句来解除您先前以 LOCK TABLE 语句锁定的表的锁定。UNLOCK TABLE 语句是对 SQL 的 ANSI/ISO 标准的扩展。

语法

元素 描述 限制 语法
synonym 要解除锁定的表的同义词 该同义词及它指向的表必须存在 数据库对象名
table 要解除锁定的表 必须在不带有事务日志记录的数据库中,且必须是您先前锁定的表 数据库对象名

用法

限制: UNLOCK TABLE 语句在事务内是无效的。

如果您拥有该表,或如果您在表上有 Select 权限,则您可从对您的用户的直接授权或从对 PUBLIC 的授权来锁定表。您仅可解除您锁定了的表的锁定。你不可解除另一进程锁定了的表的锁定。一次仅将一个锁应用于表。

您必须指定您正在解除锁定的表的名称或同义词。请不要指定视图或视图的同义词的名称。

要更改不带有事务日志记录而创建了的数据库中表的锁定模式,请使用 UNLOCK TABLE 语句来解除该表的锁定,然后发出新的 LOCK TABLE 语句。下列示例展示如何更改不带有事务日志记录而创建了的数据库中表的锁定模式:
LOCK TABLE items IN EXCLUSIVE MODE;
          ...
          UNLOCK TABLE items; 
          ...
          LOCK TABLE items IN SHARE MODE;

如果在事务内发出 UNLOCK TABLE 语句,则它会失败。当事务完成时,自动地释放在事务内设置的表锁。

如果您正在使用符合 ANSI 的数据库,请不要发出 UNLOCK TABLE 语句。如果在事务内发出 UNLOCK TABLE 语句,且在符合 ANSI 的数据库中事务总是生效的,则该语句失败。