防止 Postgresql 记录唯一键错误而不影响其他错误日志记录

防止 Postgresql 记录唯一键错误而不影响其他错误日志记录

有没有办法可以防止 Postgresql 记录因违反 UNIQUE KEY 约束而尝试插入而导致的错误?

我可以更改 server_log_min 指令,但这会禁用所有错误消息,而不仅仅是 UNIQUE KEY 约束的错误消息。

答案1

不,没有这样的方法。没有通过过滤器传输日志| grep -v ... |

答案2

仅通过调整服务器上的日志记录机制是无法做到这一点的。如果绝对必要,您可以通过破解源代码来实现;相关代码位于 src/backend/access/nbtree/nbtinsert.c 中,如下所示,大约在第 300 行:

ereport(ERROR,
    (errcode(ERRCODE_UNIQUE_VIOLATION),
        errmsg("duplicate key value violates unique constraint \"%s\"",
            RelationGetRelationName(rel))));

您可以将日志级别从 ERROR 更改为 LOG 或 NOTICE。

相关内容