database - 我可以更改 PostgreSQL 中为重复键引发的错误消息吗?
问题描述
我有一个基本上插入到表中的存储过程。当主键重复时,它会抛出
duplicate key value violates unique constraint
我在代码中捕获并显示在 UI 中的错误。
无论如何我可以将此错误内容修改为自定义内容吗?我知道我可以使用触发器和RAISE
自定义消息。我只是想知道是否有替代方案。
解决方案
我会编写一个插入行的函数。如果表被调用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;$$;
我认为没有根本不同的方式。
推荐阅读
- laravel - 在 laravel vue 中无法获得夏季笔记
- javascript - React 组件的 Material UI 主题不在 Shadow DOM 的本地范围内
- python - 谁能帮我完成这个程序?
- jquery - 单击元素外部时jQuery隐藏弹出窗口或它的孩子不起作用
- python - 排序比赛周
- python - TypeError:'newline' 是此函数的无效关键字参数
- r - purrr::walk 没有按预期工作
- php - 如何在 Codeigniter 中每行显示两个表格列?
- authentication - 使用 Git Bash 连接到 Google Cloud (gcloud) 时出现身份验证错误
- arrays - 使用 FiddlerScript 的 OnBeforeResponse 更改数组中元素的属性