首页 > 解决方案 > Postgres:创建函数以删除具有先前验证的元素

问题描述

我正在尝试在 Postgres 中创建一个函数来删除记录,但使用 2 个参数验证记录是否存在:

CREATE FUNCTION editor.full_delete_node(_id uuid, _name character varying)
    RETURNS boolean
    LANGUAGE 'plpgsql'

    COST 1
    VOLATILE PARALLEL SAFE
AS $BODY$
DECLARE 

BEGIN

IF exists(select 1 from editor.node WHERE id = _id AND name= _name) = false THEN
    RAISE EXCEPTION SQLSTATE '90001';

DELETE FROM editor.nodE WHERE id = _id AND name = _name;
    
DELETE FROM editor.graPHIC WHERE id = _id AND name = _name;
    
DELETE FROM editor.topology WHERE id = _id AND name = _name;

END
$BODY$;

ALTER FUNCTION editor.full_del_nodo(uuid, character varying)
    OWNER TO postgres;

但是 Postgres 告诉我以下错误:

第二个 $BODY$ 标签出错

你知道如何解决这个问题吗?

标签: postgresqlfunction

解决方案


推荐阅读