无论如何,我可以获得任何异常/命令执行生成的最后一个SQLSTATE,例如:
CREATE FUNCTION SQL_STATE()
RETURNS CHAR(5)
AS $$
BEGIN
RETURN (SELECT pg_last_error.SQLSTATE);
END;
$$ LANGUAGE PLPGSQL;
答案 0 :(得分:1)
否,此信息是暂时的。
PostgreSQL将服务器响应中的SQLSTATE发送到查询。如果需要保留,则必须在客户端代码中保留。
由于您的问题包含PL / pgSQL代码,因此我将在此描述其工作方式:
仅在PL / pgSQL块的EXCEPTION
处理程序中可以访问SQLSTATE,可以在其中通过变量SQLSTATE
访问该SQLSTATE。同样,如果以后需要,则必须自己保留此信息。