如何使用 PostgreSQL select 语句引发错误?

Aiv*_*var 3 sql postgresql

我需要创建一个数据修补脚本,并且我想在发生某些情况时回滚事务。

我可以在脚本的末尾做这样的事情:

select t.id / 0
from some_table t
where t.state = 'undersirable state'
Run Code Online (Sandbox Code Playgroud)

但我宁愿有一个比“除以零”更合适的错误消息。

PostgreSQL 中有生成错误的通用函数吗?如果可能的话,我想在没有 PL/SQL 的情况下完成它。

Lau*_*lbe 6

编写一个为您引发错误的小函数,并在您的SELECT语句中使用它。

CREATE FUNCTION raise_error() RETURNS integer
   LANGUAGE plpgsql AS
$$BEGIN
   RAISE EXCEPTION /* whatever you want */;
   RETURN 42;
END;$$;
Run Code Online (Sandbox Code Playgroud)