How to get an exclusive lock on a Postgres table using Ecto?

1.1k views Asked by At

How would I get a lock on an entire Postgres table, such that no other process can update any row in the table (but can still read rows with SELECT)? I think the lock type I want is EXCLUSIVE, but I am not sure how do acquire such a lock for the entire table using an Ecto query.

Thanks!

1

There are 1 answers

0
klin On BEST ANSWER

Use LOCK:

LOCK my_table IN EXCLUSIVE MODE;

Note that LOCK TABLE can only be used in transaction blocks.

See also How to use raw sql with ecto Repo