我有多个工作进程读取数据并将数据插入同一个 postgresql 数据库。但有时,似乎什么都没有发生。难道一个进程的select或insert可能会阻塞/锁定另一个进程的insert或select?
最佳答案
除非您使用 LOCK TABLE .. EXCLUSIVE
,否则无法在 Postgres 中阻止 SELECT
语句。
INSERT
但是可能 被试图插入相同主键值的另一个事务阻止。
如果遇到“好像什么都没发生”的情况,可以查询pg_stat_activity
并检查 waiting
列以查看是否有任何连接被阻止。
关于postgresql - Insert 能否锁定选择/选择计数 (*) 或其他方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14360166/