所有
我正在开发环境中运行并且有许多并发插入进入具有主键的表禁止插入重复记录。这正是它的目的。我的问题是我收到了巨大的日志文件,因为每个重复的记录都作为错误或警告报告给日志文件。无论哪种方式,它都被记录下来了。我在配置文件中将其关闭,现在所有内容都记录到pgstartup.log中。这个文件有时会超过20场演出。如何防止这个文件变得如此之大?
谢谢, 亚当
答案 0 :(得分:2)
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
答案 1 :(得分:1)
您可以使用日志轮换工具,例如:logrotate(8)
在日志文件达到特定大小或年龄时定期截断或压缩日志文件。