Postgresql

防止 Postgresql 記錄唯一鍵錯誤而不影響其他錯誤記錄

  • September 18, 2009

有沒有辦法防止 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。

引用自:https://serverfault.com/questions/62116