PostgreSQL如何使用标准的ERROR CODE和ERROR MESSAGE

时间:2016-03-19 09:15:38

标签: node.js postgresql

我想使用标准的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()有回调errresult
我的例子在这里。我可以使用err.messageerr.code分别获取错误消息和错误代码 问题:
我希望我的代码能够RAISE来自数据库端的任何错误不仅限制我的特定错误代码 我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您可以使用raise同时抛出自定义和标准例外。

通过代码引用标准异常:

raise sqlstate '22012';

或按名称:

raise division_by_zero;

这是list of defined error codes and names;有关raise的更多信息:“Errors and messages”。