PostgreSQL:Return JSON 格式的触发器错误(引发异常)
PostgreSQL: Return a trigger error (raise exception) in JSON format
我试图找出是否有可能以 任何 方式退出触发程序(return/raise 异常,无论如何) JSON输出。我想做这样的事情:
CREATE FUNCTION users_do_before_insert() RETURNS TRIGGER AS
$$
BEGIN
IF (NEW.username = '' OR NEW.full_name = '' OR NEW.email = '') THEN
RAISE EXCEPTION json_build_object('error', 'All fields are mandatory.');
END IF;
RETURN NEW;
END;
$$
LANGUAGE 'plpgsql';
CREATE TRIGGER users_bi_trigger
BEFORE INSERT ON users
FOR EACH ROW
EXECUTE PROCEDURE users_do_before_insert();
因此,预期输出为:
{"error" : "All fields are mandatory."}
非常感谢任何帮助。提前致谢!
RAISE
statement 需要格式字符串或 USING
子句
RAISE EXCEPTION '%', json_build_object(..);
RAISE EXCEPTION USING MESSAGE=json_build_object(..);
我试图找出是否有可能以 任何 方式退出触发程序(return/raise 异常,无论如何) JSON输出。我想做这样的事情:
CREATE FUNCTION users_do_before_insert() RETURNS TRIGGER AS
$$
BEGIN
IF (NEW.username = '' OR NEW.full_name = '' OR NEW.email = '') THEN
RAISE EXCEPTION json_build_object('error', 'All fields are mandatory.');
END IF;
RETURN NEW;
END;
$$
LANGUAGE 'plpgsql';
CREATE TRIGGER users_bi_trigger
BEFORE INSERT ON users
FOR EACH ROW
EXECUTE PROCEDURE users_do_before_insert();
因此,预期输出为:
{"error" : "All fields are mandatory."}
非常感谢任何帮助。提前致谢!
RAISE
statement 需要格式字符串或 USING
子句
RAISE EXCEPTION '%', json_build_object(..);
RAISE EXCEPTION USING MESSAGE=json_build_object(..);