有没有办法可以防止 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。