我创建了一个函数来删除多个记录。在我们的表中包含id作为类型uuid。我们得到的输入就像id的数组。
CREATE OR REPLACE FUNCTION public.deletetVersion(item_list uuid[])
RETURNS TABLE(id uuid[])
LANGUAGE 'plpgsql'
COST 100
VOLATILE PARALLEL UNSAFE
ROWS 1000
AS $BODY$
BEGIN
RETURN QUERY
DELETE FROM version WHERE id = ANY(item_list);
END;
$BODY$;
如果您的数据库中有一个数据库,那么您可以使用以下方法来删除数据库:
但我得到了一个错误,如:
谁来帮帮我
ERROR: function deletetversion(text[]) does not exist
2条答案
按热度按时间utugiqy61#
这是因为
被视为文本[]
请尝试以下操作
作为函数的参数
例如,
删除时
b09cbbtk2#
您的函数应该返回
setof uuid
-即uuid-s表-或uuid[]
。我更喜欢第一个。您不需要PL/pgSQL,纯SQL就足够了。因此函数为:返回数组的版本稍微复杂一些:
而且--正如@Ibrahimshamma所说--你可能需要把这个论点转化为
uuid[]
。