У меня проблема с функциями Postgresql. Я хочу объявить функцию, которая будет вставлять одну строку в таблицу, и возвращать мне эту строку (но с автоматически создаваемыми полями, такими как Id).Postgresql INSERT RETURNING complex type
CREATE OR REPLACE FUNCTION UserCreate(
name character varying(80),
surname character varying(80),
age int,
email character varying(80)
)
RETURNS "Users" AS $$
BEGIN
INSERT INTO "Users"
(name,surname,age,email) VALUES
(name, surname, age, email) RETURNING
* AS result;
END;
$$ LANGUAGE 'plpgsql'
, но когда я пытаюсь создать эту функцию я получаю сообщение об ошибке:
Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING.
I судимой найти некоторые примеры на RETURNING
пункте, но все примеры были только с использованием основных типов возвращаемых как целое.
Я пробовал аналогичное решение, но оно не работает. Я думаю, что проблема в том, что я объявляю, что возвращаю одну строку, а 'result' может содержать набор строк. Я также попробовал 'LIMIT 1', но это не помогает –
Вышеупомянутые работы для меня, и это должно сработать для вас. Какое сообщение об ошибке вы получаете? – Andomar
ОК, моя вина. Я попытался создать функцию с помощью pgAdmin, но она работала с консоли. Изучит, почему –