postgresql - 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 告诉我以下错误:
你知道如何解决这个问题吗?
解决方案
推荐阅读
- vue.js - VueJS 中的同步功能应该使用 watch 吗?
- c - UNIX系统下用_stdcall编译
- django - Django Mongoengine 身份验证
- android - 如何检查 RecyclerView 的第一项是否在屏幕上可见
- php - 找不到类“Tymon\JWTAuth\Providers\LaravelServiceProvider”
- html - 角按钮单击旋转图标
- javascript - Mocha Chai 或 JEST 或两者兼而有之?
- c++ - 当我使用“using cout = std::cout;”时,为什么会出现错误“'cout' in namespace 'std' does not name a type”?
- python - 从python打开另一个文件
- javascript - jQuery 为标签使用特定的 UL 元素