标签: sql multithreading postgresql locking psql
我正在尝试使用SELECT FOR UPDATE psql命令https://www.postgresql.org/docs/9.1/static/explicit-locking.html
SELECT FOR UPDATE
除了命令允许基于数据库行的锁定
我想知道如果线程1首先执行SELECT FOR UPDATE会发生什么,然后很快就会发生线程2并尝试执行相同的命令。线程2是否被阻塞,直到线程1中的数据库事务提交或回滚?
答案 0 :(得分:1)
是的,Thread2将一直等到Thread1完成。
您可以使用NOWAIT或SKIP LOCKS来阻止操作等待(请参阅)。
NOWAIT
SKIP LOCKS