Die UNLOCK-Anweisung (unlock_statement) gibt Sperren auf Zeilen frei.
<unlock_statement> ::= UNLOCK <row_spec>... IN SHARE MODE
| UNLOCK <row_spec> ... IN EXCLUSIVE
MODE
| UNLOCK <row_spec> ... IN SHARE MODE
<row_spec> ... IN EXCLUSIVE MODE
| UNLOCK <row_spec> ... OPTIMISTIC
<row_spec> ::= ROW
<table_name> KEY
<key_spec>,...
| ROW <table_name> CURRENT OF <result_table_name>
Mit der UNLOCK-Anweisung können innerhalb einer Transaktion Lesesperren, optimistische Sperren und Schreibsperren für einzelne, noch nicht geänderte Zeilen von Tabellen freigegeben werden.
Wurde eine Zeile eingefügt, geändert oder gelöscht, kann ihre Schreibsperre nicht durch die UNLOCK-Anweisung freigegeben werden.
Die UNLOCK-Anweisung scheitert nicht, wenn die angegebene Sperre gar nicht existiert oder nicht freigegeben werden kann.
Bei Tabellen, die ohne Schlüsselspalten definiert wurden, kann die implizit existierende Schlüsselspalte SYSKEY CHAR(8) BYTE in einer Schlüsselspezifikation key_spec verwendet werden.
Wenn CURRENT OF <result_table_name> angegeben wird, muss die Ergebnistabelle mit FOR UPDATE spezifiziert worden sein.
Siehe auch:
LOCK-Anweisung (lock_statement)
Konzepte des Datenbanksystems, Sperren für Datenbankobjekte