Re: pl/pgsql trigger: syntax error at or near "ELSEIF"

Поиск
Список
Период
Сортировка
От Alban Hertroys
Тема Re: pl/pgsql trigger: syntax error at or near "ELSEIF"
Дата
Msg-id 41E7BAAC.1080401@magproductions.nl
обсуждение исходный текст
Ответ на pl/pgsql trigger: syntax error at or near "ELSEIF"  (Roman Neuhauser <neuhauser@chello.cz>)
Ответы Re: pl/pgsql trigger: syntax error at or near "ELSEIF"
Список pgsql-general
Roman Neuhauser wrote:
> Hello, what is the parser trying to tell me? (7.4.2 if it matters)
> test'#       ELSEIF TG_OP = ''DELETE'' THEN

You typed ELSEIF, the parser doesn't know what that means (It's either
ELSIF or ELSE IF).

> On a related note: if I replace NEW with OLD in the second UPDATE (in the
> ELSEIF branch), I get:
> What's wrong with that?

OLD doesn't exist in INSERT triggers, only in UPDATE and DELETE
triggers. A record in an INSERT trigger is by definition a new record,
an old record wouldn't make sense.

IMHO, it would be better to write two or three different triggers (one
on INSERT, the other on DELETE, and maybe a third on UPDATE) than
writing a single and trying to figure out which of those three it was in
the trigger.

Alban Hertroys.

В списке pgsql-general по дате отправления:

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: pl/pgsql trigger: syntax error at or near "ELSEIF"
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: Cursor bug?