最后的SQLSTATE-PostgreSQL

时间:2019-06-19 07:16:42

标签: postgresql

无论如何,我可以获得任何异常/命令执行生成的最后一个SQLSTATE,例如:

CREATE FUNCTION SQL_STATE()
RETURNS CHAR(5)
AS $$
BEGIN
  RETURN (SELECT pg_last_error.SQLSTATE);
END;
$$ LANGUAGE PLPGSQL;

1 个答案:

答案 0 :(得分:1)

否,此信息是暂时的。

PostgreSQL将服务器响应中的SQLSTATE发送到查询。如果需要保留,则必须在客户端代码中保留。

由于您的问题包含PL / pgSQL代码,因此我将在此描述其工作方式: 仅在PL / pgSQL块的EXCEPTION处理程序中可以访问SQLSTATE,可以在其中通过变量SQLSTATE访问该SQLSTATE。同样,如果以后需要,则必须自己保留此信息。