php-psql lock problem. Thanks!
От | Maurizio Ortolan |
---|---|
Тема | php-psql lock problem. Thanks! |
Дата | |
Msg-id | 5.1.0.14.2.20011014122416.037cd170@mail.tin.it обсуждение исходный текст |
Список | pgsql-hackers |
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 ifthe user goes away? ******************************************* ** Happy surfing on THE NET !! ** ** Ciao by ** ** C R I X 98 ** ******************************************* AntiSpam: rimuovere il trattino basso dall'indirizzo per scrivermi... (delete the underscore from the e-mail address to reply)
В списке pgsql-hackers по дате отправления: