gpt4 book ai didi

postgresql - 在 PostgreSQL 中锁定表时,出现错误 : LOCK TABLE can only be used in transaction blocks

转载 作者:行者123 更新时间:2023-11-29 12:23:14 24 4
gpt4 key购买 nike

错误是

ERROR:  LOCK TABLE can only be used in transaction blocks
SQL state: 25P01

为什么会出现该错误,我该怎么做才能锁定表?

最佳答案

关系数据库系统中的锁一直保持到当前事务结束。

现在 PostgreSQL 使用自动提交模式,所以如果您不使用BEGINSTART TRANSACTION 显式启动事务,每个语句都会运行在自己的交易中。

不属于显式启动的多语句事务的显式表锁是无用的,因为它会在语句结束时消失。但它仍然可能通过阻止它们来损害并发事务,因此它是被禁止的。

请在使用显式表锁之前重新考虑。在 99% 的情况下,它们是不必要的,并且表明程序员不了解数据库并发技术或没有认真思考。显式锁定会损害并发性并会阻止 autovacuum(有时会带来灾难性后果)。

关于postgresql - 在 PostgreSQL 中锁定表时,出现错误 : LOCK TABLE can only be used in transaction blocks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58336586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com