PostgreSQL 中的 MERGE 命令是原子的还是需要像 SQL Server 版本那样的“爱”?

问题描述 投票:0回答:1

来自 SQL Server,我知道

MERGE
命令需要一些额外的注意,例如锁定提示才能成为原子操作,现在我开始使用 PostgreSQL。我现在想在 PostgreSQL 中使用 MERGE 命令,知道 SQL Server 中的问题,我做了一个快速研究并查看文档,看看 PostgreSQL 中的
MERGE
命令在设计上是原子的还是如果需要类似 SQL Server 上的东西。

如果有任何区别,该命令将不会直接使用,而是在存储过程中使用。目前使用 PostgreSQL 15。

好吧,我没有找到答案,只有一些博客在文本流中提到了一些内容,但没有具体的内容。

sql postgresql stored-procedures merge
1个回答
0
投票

根据@AdrianKlaver提供的链接交易隔离我找到了我正在寻找的答案。

基于此文档

MERGE
PostgreSQL 中也不是原子的。他们明确指出,可以在 SELECT 阶段和 INSERT/UPDATE/DELETE 阶段之间修改行,如果 INSERT、UPDATE 和 DELETE 部分也涉及条件,则可能会导致不需要的结果。

简而言之,在使用 MERGE 时必须格外小心,并根据用例选择正确的隔离级别,就像在 MS SQL Server 中一样。

© www.soinside.com 2019 - 2024. All rights reserved.