Select FOR UPDATE considered harmful in PostgreSQL

20 samokhvalov 2 6/19/2025, 5:41:25 PM cybertec-postgresql.com ↗

Comments (2)

gmcabrita · 57m ago
> PostgreSQL takes FOR UPDATE on rows before a DELETE, or before an UPDATE that modifies a column that is part of a unique index that neither contains expressions nor is partial

This also happens when you UPDATE the same row twice within the same transaction.

https://goncalo.mendescabrita.com/blog/cross-table-lock/

rickette · 3h ago
tl;dr "Unless you plan to delete a row or modify a key column, always use SELECT FOR NO KEY UPDATE".