首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何告诉Postgresql事务中将包含哪些表?

问如何告诉Postgresql事务中将包含哪些表?
EN

Database Administration用户
提问于 2023-03-02 23:40:18
回答 1查看 34关注 0票数 -1

RDS Postgresql 12.12

CREATE INDEX CONCURRENTLY idx_foo ON foo (f1, f2, f3);被只涉及表bar和baz的存储过程阻塞。

BEGIN和START TRANSACTION似乎没有一个子句,它只允许一个人指定事务中触及的表。我是不是遗漏了什么?

EN

回答 1

Database Administration用户

发布于 2023-03-03 07:23:31

我认为您有一种误解,即PostgreSQL锁定与活动事务无关的表。情况并非如此。如果事务对表foo具有锁,则事务中的一条语句确实会影响表foo。

注意,语句可以影响语句中没有提到的表。一种可能是在您修改的表上设置触发器:触发器函数中的语句可以修改其他表。另一个例子是由外键约束引起的级联删除。

我建议您保持事务简短,这样锁就不会有什么问题了。

没有办法告诉PostgreSQL不要锁定事务中使用的表或被修改的列。这将导致数据库中的不一致。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/324315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档