来自 Postgres 新手的一个简单问题:
我如何编写类似的 Postgres 事务
IF SELECT COUNT(*) FROM myTable WHERE myPK = myValue > 0 THEN
UPDATE myTable ...
ELSE
INSERT INTO myTable...
END
我希望它可以解决我的网络应用程序中的一个错误,该错误发生在 myTable 上发生另一个插入时,我能够SELECT COUNT(*)
从中决定是否应该更新或插入。
来自 Postgres 新手的一个简单问题:
我如何编写类似的 Postgres 事务
IF SELECT COUNT(*) FROM myTable WHERE myPK = myValue > 0 THEN
UPDATE myTable ...
ELSE
INSERT INTO myTable...
END
我希望它可以解决我的网络应用程序中的一个错误,该错误发生在 myTable 上发生另一个插入时,我能够SELECT COUNT(*)
从中决定是否应该更新或插入。
在 Postgresql 的文档中有一个示例 plpgsql 实现:参见merge_db
它专门用于支持并发更新或插入(通常称为 UPSERT)。