Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

GNU/Linux

RedHat 5.2

(Apollo)

lock(l)


FETCH

FETCH

NAME
SYNOPSIS
DESCRIPTION
EXAMPLES
SEE ALSO

NAME

lock - exclusive lock a table

SYNOPSIS

lock [table] classname

DESCRIPTION

lock exclusive locks a table inside a transaction. 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 exclusive lock the table before the select, some other user may also read the selected data, and try and do their own update, causing a deadlock while you both wait for the other to release the select-induced shared lock so you can get an exclusive lock to do the update.

Another example of deadlock is where one user locks one table, and another user locks a second table. While both keep their existing locks, the first user tries to lock the second user’s table, and the second user tries to lock the first user’s table. Both users deadlock waiting for the tables to become available. The only solution to this is for both users to lock tables in the same order, so user’s lock aquisitions and requests to not form a deadlock.

EXAMPLES

--
-- Proper locking to prevent deadlock
--
begin work;
lock table mytable;
select * from mytable;
update mytable set (x = 100);
commit;

SEE ALSO

begin(l), commit(l), select(l).



lock(l)