У меня есть следующий триггер, который должен назначать number
сообщению каждый раз, когда новая запись будет вставлена в таблицу posts
. Он находит максимальный number
от posts
с областью до project_id
новой записи.В запросе PostgreSQL нет адресата для данных результата
CREATE OR REPLACE FUNCTION assign_number()
RETURNS trigger AS
$BODY$
BEGIN
SELECT coalesce(MAX(number), 0) max_number FROM posts WHERE project_id = NEW.project_id;
NEW.number := max_number + 1;
RETURN NEW;
END;
$BODY$ LANGUAGE plpgsql;
CREATE TRIGGER post_created
BEFORE INSERT ON posts
FOR EACH ROW
EXECUTE PROCEDURE assign_number();
К сожалению, я получаю ошибку синтаксиса query has no destination for result data
при попытке сделать INSERT
. Я пробовал все, что мог придумать, и посмотрел на каждый связанный с ним вопрос на StackOverflow, но все же, похоже, не в состоянии понять это.
Какие-либо идеи о том, что здесь не так? Что-нибудь очевидное, что мне не хватает?
Вы забыли «INTO»? – Nicarus