Postgresql pgstartup.log 文件问题

标签 postgresql logging

全部,

我在开发环境中运行,并且有许多并发插入到具有主键的表中,禁止插入重复记录。这正是它打算做的。我的问题是我得到了巨大的日志文件,因为每条重复记录都作为错误或警告报告给日志文件。无论哪种方式,它都被记录下来了。我在配置文件中将其关闭,现在所有内容都记录到 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/

相关文章:

postgresql - Postgres : LIKE query against a string returns no results, 尽管存在结果

postgresql - 使用唯一整数更新现有记录

logging - 如何打开和关闭 NLog 中特定级别的日志记录

java - logger会不会遵循顺序执行

sql - 更新数字列,使其字段的值构建一个以 x 开头的序列

sql - 你能解释一下下面的 SQL (postgres) 代码吗?

json - 以 JSON 形式记录 - 标准是多个根元素,为什么?

java - 如何记录两个类使用的总体类

symfony - 来自请求的 API 平台记录 header

sql - 使用 postgresql 的 WITH CTE 查询