php-psql lock problem
От | Maurizio Ortolan |
---|---|
Тема | php-psql lock problem |
Дата | |
Msg-id | 5.1.0.14.2.20011014122242.00c91f48@mail.tin.it обсуждение исходный текст |
Список | pgsql-general |
Hello to everybody! I've a little problem with LOCK-ing a certain row in a table using PHP and PostgreSQL on LINUX. >> In a few words, I'd like to undertand >> how find out if a certain row is locked, >> in order to prevent a kind of deadlock. Which is the (system) table where all locked row or tables are 'saved' ? Is there any flag? // ############################ Example 1: User A: BEGIN WORK; select login from people where userid='1' for update; [ ... ] COMMIT WORK; User B: BEGIN WORK; (***) select login from people where userid='1' for update; [ WAIT UNTIL 'COMMIT WORK' of user A ! :( ] COMMIT WORK; Solution: I'd like to put in (***) a quick check in order to know if the row with userid='1' is already locked or not. In this way, if it's already locked, I'll use select login from people where userid='1'; [ ONLY READ ] instead of select login from people where userid='1' for update; [READ & WRITE] // ############################ Example 2: BEGIN WORK; LOCK TABLE utenti IN SHARE ROW EXCLUSIVE MODE; select login from people where userid='1'; COMMIT WORK; // ############################ Many thanks to everybody! Ciao! MaURIZIO crix98@____tin.it It's sure that a small example in PHP will very very appreciated!! :)) PS: it's possible to setup a timeout for a locked table, in order to exec an aoutomatic ROLLBACK ?? (for examples if the user goes away? ******************************************* ** Happy surfing on THE NET !! ** ** Ciao by ** ** C R I X 98 ** *******************************************
В списке pgsql-general по дате отправления: