Re: Deadlocks and transactions - Mailing list pgsql-novice

From David G. Johnston
Subject Re: Deadlocks and transactions
Date
Msg-id CAKFQuwb3ZUnXhrdsm556tGZpEEL+J=cOqj+1MDh+VZb9fazrNA@mail.gmail.com
Whole thread Raw
In response to Deadlocks and transactions  (JORGE MALDONADO <jorgemal1960@gmail.com>)
Responses Re: Deadlocks and transactions  (Lætitia Avrot <laetitia.avrot@gmail.com>)
List pgsql-novice
On Mon, Mar 19, 2018 at 2:46 PM, JORGE MALDONADO <jorgemal1960@gmail.com> wrote:
I have a process that inserts a record in one table and, after that, a record in another table is updated. Because there are 2 DB operations, I decided to perform both of them in a transaction. 

Can a deadlock take place even if transactions are used?

Its impossible to deadlock without transactions​.

Simplistically, a deadlock happens when there are two processes - one holds lock A and wants lock B while the other wants lock A while holding lock B.

Your choice to use a transaction here is good but you will have at least some risk of deadlock with others parts of the system.  Other processes running this same exact code, however, should not pose a risk since the locking order would be consistent.

David J.

pgsql-novice by date:

Previous
From: JORGE MALDONADO
Date:
Subject: Deadlocks and transactions
Next
From: Lætitia Avrot
Date:
Subject: Re: Deadlocks and transactions