Re: Trigger (Calling a Procedure)

Поиск
Список
Период
Сортировка
От Michael Fuhr
Тема Re: Trigger (Calling a Procedure)
Дата
Msg-id 20060816055055.GA50975@winnie.fuhr.org
обсуждение исходный текст
Ответ на Trigger (Calling a Procedure)  ("Harpreet Dhaliwal" <harpreet.dhaliwal01@gmail.com>)
Ответы Re: Trigger (Calling a Procedure)  ("Harpreet Dhaliwal" <harpreet.dhaliwal01@gmail.com>)
Список pgsql-general
On Wed, Aug 16, 2006 at 01:35:47AM -0400, Harpreet Dhaliwal wrote:
> I'm trying to create a trigger with the following definition:
>
> CREATE TRIGGER insert_price_change AFTER INSERT OR DELETE OR UPDATE ON
> raw_email
>  FOR EACH ROW EXECUTE PROCEDURE add_one(1);
>
> Procedure / Function add_one has the following definition
>
> CREATE FUNCTION add_one(integer) RETURNS integer
>     AS '/usr/local/pgsql/jsb/add_one', 'add_one'
>     LANGUAGE C STRICT;
>
> function add_one is running fine.
>
> When I try to create the trigger insert_price_change, it throws me the
> follwoing error:
>
> ERROR:  function add_one() does not exist

Trigger functions must return type "trigger" and they must be
declared with no arguments.  You can pass an argument as in your
CREATE TRIGGER statement but a trigger function receives its arguments
differently than an ordinary function.  See the Triggers chapter
in the documentation, especially "Writing Trigger Functions in C":

http://www.postgresql.org/docs/8.1/interactive/triggers.html

Unless you need to use C I'd suggest using PL/pgSQL.  Even if you
do need to use C I'd recommend practicing with PL/pgSQL to learn
the basics with a simpler language.

http://www.postgresql.org/docs/8.1/interactive/plpgsql-trigger.html

--
Michael Fuhr

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

Предыдущее
От: "Jasbinder Bali"
Дата:
Сообщение: Re: DB insert Error
Следующее
От: Michael Fuhr
Дата:
Сообщение: Re: [NOVICE] DB insert Error