-<REFENTRY ID="SQL-LOCK">
- <REFMETA>
- <REFENTRYTITLE>
+<refentry id="SQL-LOCK">
+ <refmeta>
+ <refentrytitle>
LOCK
- REFENTRYTITLE>
- <REFMISCINFO>SQL - Language Statements>
- REFMETA>
- <REFNAMEDIV>
- <REFNAME>
+ refentrytitle>
+ <refmiscinfo>SQL - Language Statements>
+ refmeta>
+ <refnamediv>
+ <refname>
LOCK
- REFNAME>
- <REFPURPOSE>
+ refname>
+ <refpurpose>
Explicit lock of a table inside a transaction
- REFPURPOSE>
+ refpurpose>
-
-
- 1998-09-24
-
-
- LOCK [ TABLE ] [IN [ROW|ACCESS] [SHARE|EXCLUSIVE] | [SHARE ROW EXCLUSIVE] MODE]
- table
-
+
+
+ 1998-09-24
+
+
+LOCK [ TABLE ] table
+LOCK [ TABLE ] table IN [ ROW | ACCESS ] { SHARE | EXCLUSIVE } MODE
+LOCK [ TABLE ] table IN SHARE ROW EXCLUSIVE MODE
+
- <REFSECT2 ID="R2-SQL-LOCK-1">
- <REFSECT2INFO>
- <DATE>1998-09-01>
- REFSECT2INFO>
- <TITLE>
+ <refsect2 id="R2-SQL-LOCK-1">
+ <refsect2info>
+ <date>1998-09-01>
+ refsect2info>
+ <title>
Inputs
-
-
-
-
-
- table
-
-
- The name of an existing table to lock.
-
-
-
-
-
-
+
+
+
+
+
+ table
+
+
+ The name of an existing table to lock.
+
+
+
+
+
+
+ SHARE MODE
+
+
+
+
+
+
+
+
+ EXCLUSIVE MODE
+
+
+
+
+
+
+
+
+ ROW SHARE MODE
+
+
+
+
+
+
+
+
+ ROW EXCLUSIVE MODE
+
+
+
+
+
-
-
- 1998-09-24
-
-
+
+
+ ACCESS SHARE MODE
+
+
+
+
+
+
+
+
+ ACCESS EXCLUSIVE MODE
+
+
+
+
+
+
+
+
+ SHARE ROW EXCLUSIVE MODE
+
+
+
+
+
+
+
+
+
+
+
+ 1998-09-24
+
+
Outputs
- TITLE>
- <PARA>
+ title>
+ <para>
-
-
- ERROR table: Table does not exist.
-
-
- Message returned if table
+
+
+
+ ERROR table: Table does not exist.
+
+
+ Message returned if table
does not exist.
- VARIABLELIST>
+ variablelist>
- REFSECT2>
- REFSYNOPSISDIV>
+ refsect2>
+ refsynopsisdiv>
- <REFSECT1 ID="R1-SQL-LOCK-1">
- <REFSECT1INFO>
- <DATE>1998-09-24>
- REFSECT1INFO>
- <TITLE>
+ <refsect1 id="R1-SQL-LOCK-1">
+ <refsect1info>
+ <date>1998-09-24>
+ refsect1info>
+ <title>
Description
- TITLE>
- <PARA>
+ title>
+ <para>
By default, LOCK locks in exclusive mode a table inside
a transaction. Various options allow shared access, or row-level locking
control. The classic use for this is
- <REFSECT2 ID="R2-SQL-LOCK-3">
- <REFSECT2INFO>
- <DATE>1998-09-24>
- REFSECT2INFO>
- <TITLE>
+ <refsect2 id="R2-SQL-LOCK-3">
+ <refsect2info>
+ <date>1998-09-24>
+ refsect2info>
+ <title>
Notes
- TITLE>
+ title>
language extension.
- REFSECT2>
+ refsect2>
- <REFSECT1 ID="R1-SQL-LOCK-2">
- <TITLE>
+ <refsect1 id="R1-SQL-LOCK-2">
+ <title>
Usage
- TITLE>
- <PARA>
- PARA>
- <ProgramListing>
+ title>
+ <para>
+ para>
+ <programlisting>
--Explicit locking to prevent deadlock:
--
BEGIN WORK;
UPDATE films SET len = INTERVAL '100 minute'
WHERE len = INTERVAL '117 minute';
COMMIT WORK;
- ProgramListing>
+ programlisting>
- REFSECT1>
+ refsect1>
- <REFSECT1 ID="R1-SQL-LOCK-3">
- <TITLE>
+ <refsect1 id="R1-SQL-LOCK-3">
+ <title>
Compatibility
- TITLE>
+ title>
- <REFSECT2 ID="R2-SQL-LOCK-4">
- <REFSECT2INFO>
- <DATE>1998-09-24>
- REFSECT2INFO>
- <TITLE>
+ <refsect2 id="R2-SQL-LOCK-4">
+ <refsect2info>
+ <date>1998-09-24>
+ refsect2info>
+ <title>
SQL92
- TITLE>
- <PARA>
+ title>
+ <para>
There is no
LOCK TABLE in
SQL92,
which instead uses SET TRANSACTION to specify
concurrency level on transactions. We support that too.
-REFENTRY>
+refentry>