全部,
我在开发环境中运行,并且有许多并发插入到具有主键的表中,禁止插入重复记录。这正是它打算做的。我的问题是我得到了巨大的日志文件,因为每条重复记录都作为错误或警告报告给日志文件。无论哪种方式,它都被记录下来了。我在配置文件中将其关闭,现在所有内容都记录到 pgstartup.log 中。这个文件有时会超过 20 个演出。我怎样才能防止这个文件变得太大?
谢谢, 亚当
最佳答案
Postgres 没有 MERGE、INSERT IGNORE 和 UPSERT 功能:(
不过,您可以使用代理项 MERGE 或 INSERT IGNORE(使用 CTE)来防止重复插入,而不是直接插入:
WITH upsert AS
(UPDATE "your table" yt SET .... WHERE yt.key=<KEY VALUE>
RETURNING yt.*
)
INSERT INTO "your table"
SELECT ... FROM "your table" WHERE key NOT IN (SELECT key FROM upsert);
r
关于Postgresql pgstartup.log 文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916289/