3

Related to previous question here

From the pg_locks documentation, row level lock information is not available when FOR UPDATE is used in a SELECT statement.

Is there any way to check for row level lock when FOR UPDATE is used in a SELECT statement? If yes, how can I do so with Postgres 11?

Thank you

1 Answer 1

6

Row locks are not permanently stored in the shared lock table, but on the row itself, so you cannot simply query for them.

To figure out which rows in a table are locked by concurrent transactions, you could run

SELECT id FROM mytable
WHERE id NOT IN (SELECT id FROM mytable
                 FOR UPDATE SKIP LOCKED);

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.