首页 > 解决方案 > 我可以更改 PostgreSQL 中为重复键引发的错误消息吗?

问题描述

我有一个基本上插入到表中的存储过程。当主键重复时,它会抛出

duplicate key value violates unique constraint

我在代码中捕获并显示在 UI 中的错误。

无论如何我可以将此错误内容修改为自定义内容吗?我知道我可以使用触发器和RAISE自定义消息。我只是想知道是否有替代方案。

标签: databasepostgresqlconstraints

解决方案


我会编写一个插入行的函数。如果表被调用mytab

CREATE FUNCTION insert_mytab(p_row mytab) RETURNS void
   LANGUAGE plpgsql AS
$$BEGIN
   INSERT INTO mytab SELECT (p_row).*;
EXCEPTION
   WHEN unique_violation THEN
      RAISE EXCEPTION 'don''t tickle me';
END;$$;

我认为没有根本不同的方式。


推荐阅读