1998-09-24
- LOCK [ TABLE ] table
+ LOCK [ TABLE ] [[IN] [ROW|ACCESS] [SHARE|EXCLUSIVE] MODE] table
-
-
- DELETE 0
-
-
- Message returned on a successful lock.
- LOCK is implemented as a
- DELETE FROM table
- which is guaranteed to not delete any rows.
-
-
-
-
ERROR table: Table does not exist.
Description
- LOCK locks in exclusive mode a table inside
- a transaction. The classic use for this is
+ 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
the case where you want to select some data, then
update it inside a transaction.
If you don't explicit lock a table using LOCK statement, it will be
There is no
LOCK TABLE in
SQL92,
which instead uses SET TRANSACTION to specify
- concurrency level on transactions.
+ concurrency level on transactions. We support that too.
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: psqlHelp.h,v 1.66 1999/06/03 18:37:59 momjian Exp $
+ * $Id: psqlHelp.h,v 1.67 1999/06/03 19:17:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
{"lock",
"exclusive lock a table inside a transaction",
"\
-\tLOCK [TABLE] class_name;"},
+\tLOCK [TABLE] class_name \n\
+\t[[IN] [ROW|ACCESS] [SHARE|EXCLUSIVE] MODE];"},
{"move",
"move an cursor position",
"\
.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/src/man/Attic/lock.l,v 1.5 1998/03/23 15:09:34 momjian Exp $
+.\" $Header: /cvsroot/pgsql/src/man/Attic/lock.l,v 1.6 1999/06/03 19:18:00 momjian Exp $
.TH FETCH SQL 01/23/93 PostgreSQL PostgreSQL
.SH NAME
lock - exclusive lock a table
.SH SYNOPSIS
.nf
-\fBlock\fR [\fBtable\fR] classname
+\fBlock\fR [\fBtable\fR] classname [[IN] [ROW|ACCESS] [SHARE|EXCLUSIVE] MODE]
.fi
.SH DESCRIPTION
+By default,
.BR lock
-exclusive locks a table inside a transaction. The classic use for this
+exclusive locks an entire table inside a transaction.
+Various options allow shared access, or row-level locking control.
+.PP
+The classic use for this
is the case where you want to \fBselect\fP some data, then update it
inside a transaction. If you don't exclusive lock the table before the
\fBselect\fP, some other user may also read the selected data, and try