Search code examples
sqldatabasepostgresqlconcurrencyreadwritelock

What is difference between write_lock and read_lock in concurency control? How to implement read_lock in PostgreSQL?


What is difference between write_lock and read_lock in concurency? What is allowed in write_lock? What is allowed in read_lock? In PostgreSQL, write_lock can be implemented with FOR UPDATE

SELECT salary 
FROM staff 
WHERE worker_id=1 
FOR UPDATE

How to implement read_lock in PostgreSQL?


Solution

  • SELECT salary 
    FROM staff 
    WHERE worker_id=1 
    FOR SHARE;

    There are 4 modes possible here. Per documentation:

    UPDATE
    NO KEY UPDATE
    SHARE
    KEY SHARE
    

    All the details in the manual.