Postgresql
防止 Postgresql 記錄唯一鍵錯誤而不影響其他錯誤記錄
有沒有辦法防止 Postgresql 記錄由違反 UNIQUE KEY 約束的嘗試插入引起的錯誤?
我可以更改 server_log_min 指令,但這會禁用所有 ERROR 消息,而不僅僅是那些用於 UNIQUE KEY 約束的消息。
不,不存在這樣的方式。
| grep -v ... |
通過過濾器缺少管道日誌。
僅通過調整伺服器上的日誌記錄機制是無法做到這一點的。如果絕對必要,您可以通過破解原始碼來做到這一點;相關程式碼位於 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。