我想使用标准的ERROR消息和PostgreSQL的代码
现在,我可以实现我的目标,但我想知道我可以使用的最佳方式
这是我目前在数据库中的功能。
CREATE OR REPLACE FUNCTION Dugong.Forget_Passwd_Add(
in_Username varchar(255),
in_randomURLs text
)
RETURNS void AS $$
BEGIN
IF (SELECT Dugong.Users_isExist(in_Username)) THEN
INSERT INTO dugong.Forget_Passwd (Username, randomURLs, used)
VALUES (in_Username, in_randomURLs, FALSE);
ELSE
RAISE EXCEPTION USING ERRCODE = '20000', MESSAGE = 'Username not found';
END IF;
END;
$$ LANGUAGE PLPGSQL;
我的Node Express
pg
模块将使用client.query()
。
client.query()
有回调err
和result
。
我的例子在这里。我可以使用err.message
和err.code
分别获取错误消息和错误代码
问题:
我希望我的代码能够RAISE
来自数据库端的任何错误不仅限制我的特定错误代码
我怎么能这样做?
答案 0 :(得分:1)
您可以使用raise
同时抛出自定义和标准例外。
通过代码引用标准异常:
raise sqlstate '22012';
或按名称:
raise division_by_zero;
这是list of defined error codes and names;有关raise
的更多信息:“Errors and messages”。