我来自SQL Server,在那里我知道MERGE
命令需要一些额外的照顾,比如锁定提示,才能成为原子操作,现在我开始使用PostgreSQL.现在我想在PostgreSQL中使用MERGE命令,知道SQL Server中的问题,我做了一个快速的研究,并查看了文档,看看PostgreSQL中的MERGE
命令是否是原子设计的,或者是否需要类似的东西.
如果有任何不同,该命令将不会直接使用,而是在存储过程中使用.目前使用的是PostgreSQL 15.
好吧,我没有找到答案,只有一些博客提到了一些文字流中的东西,但没有具体的内容.
澄清
"原子的意思有点短,我指的是ACID,所以让我用NOT ACID重新表述MERGE
.MERGE
的作用类似于多个语句一个接一个地运行,不能保证这个命令的每个操作都是针对相同版本的数据进行的.因为其他语句可以同时修改它们.单个UPDATE
语句(当然没有SUB SELECT)是ACID,因为只要语句一开始执行,底层数据就不会被其他语句更改,直到UPDATE
语句完成.