[英]Force a “lock” with Postgres and GO
我是Postgres的新手,所以这可能很明显(或者非常困难,我不确定)。
我想强制一次将表或行“锁定”至少几秒钟。 这将导致第二个操作“等待”。
我正在将golang与“ github.com/lib/pq”一起使用来与数据库进行交互。
我需要这个的原因是因为我正在研究一个监视postgresql的项目。 谢谢你的帮助。
您也可以使用select ...进行更新,以锁定事务长度的一行或多行。
基本上,它就像:
begin;
select * from foo where quatloos = 100 for update;
update foo set feens = feens + 1 where quatloos = 100;
commit;
这将在quatloos = 100的foo表行上执行排他级锁。尝试访问这些行的任何其他事务将被阻塞,直到选择更新运行后发出了提交或回滚。
理想情况下,这些锁的寿命应尽可能短。
参见: https : //www.postgresql.org/docs/current/static/explicit-locking.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.