【发布时间】:2021-12-05 02:59:15
【问题描述】:
这是我第一次弄乱 plpgsql,我有以下几点:
create or replace function create_marker(title text, description text, latitude decimal, longitude decimal)
returns record
language plpgsql
as $$
declare
res record;
begin
INSERT INTO markers (
title,
description,
latitude,
longitude,
geometry
) VALUES
('marker 1', 'this is marker1 1 description', 10, -100, ST_SetSRID(ST_MakePoint(10, -100), 4326))
RETURNING * into res;
end;
$$;
但我得到一个错误:
a column definition list is required for functions returning "record"
我该如何解决这个问题?
我希望能够做这样的事情:
SELECT * FROM create_marker(...)
【问题讨论】:
-
需要为返回
RECORD类型的函数指定OUT参数。或者只使用markers而不是record -
你能解释一下“或者只是使用标记而不是记录”的意思吗?抱歉,今天是我使用 plpgsql 的第一天..
-
你为什么要使用 plpgsql?将其设为
LANGUAGE SQL函数。 -
在您的代码中将
record替换为markers。并且不要忘记函数末尾的return res;。
标签: postgresql plpgsql