首页 > 解决方案 > Postgres Sql 插入使用开始异常块错误

问题描述

我正在使用开始异常块的查询它在插入附近给我语法错误这是我的查询

BEGIN
        INSERT INTO public.role(
        id, "RoleName")
        VALUES (1, 'SomeRole')
        RETURNING id as roleid;
    
EXCEPTION
    RETURNING -1 as roleid
END
    
    select roleid

标签: sqlpostgresqlpostgresql-9.4

解决方案


这不是使用PostgreSql的方法。您只能使用“从提交开始” 。

这是您可以遵循的语法

BEGIN;

        INSERT INTO public.role(
        id, "RoleName")
        VALUES (1, 'SomeRole')
        RETURNING id as roleid;
    
COMMIT;

这里的BEGIN块将自动回滚您的事务。您也可以通过这样做返回最后插入的角色标识。


推荐阅读