From: | Nikolai Zhubr <n-a-zhubr(at)yandex(dot)ru> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Actual row order in UPDATE and SELECT FOR UPDATE |
Date: | 2016-02-15 22:17:52 |
Message-ID: | 56C24E90.1030806@yandex.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello all,
I can't find any clear description of how to reliably figure and/or
enforce specific row (locking) order within UPDATE and SELECT FOR UPDATE
statements dealing with multiple rows.
I'd like to get rid of some deadlocks (caused by share locks). While the
manual explains locks and deadlocks themselves pretty fine (in e.g.
http://www.postgresql.org/docs/9.5/static/explicit-locking.html
) it somehow avoids discussing multi-row updates there. On the other
hand, the UPDATE section of the manual somehow avoids discussing actual
update order and respective locking too.
So is it defined anywhere explicitely? Or do I rather have to convert
all multi-row UPDATE statements into single-row updates and then wrap
them into e.g. plpgsql loops? That would look quite strange...
Any hints?
Thank you,
Nikolai
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2016-02-15 22:27:09 | Re: Actual row order in UPDATE and SELECT FOR UPDATE |
Previous Message | Chris Mair | 2016-02-15 22:02:22 | Re: Trouble installing PostGIS on Amazon Linux server |