Re: Question on trigger data visibility

Поиск
Список
Период
Сортировка
От Terry Lee Tucker
Тема Re: Question on trigger data visibility
Дата
Msg-id 201008301005.12678.terry@chosen-ones.org
обсуждение исходный текст
Ответ на Question on trigger data visibility  (Maurice Gittens <mainmanmauricio@gmail.com>)
Ответы Re: Question on trigger data visibility  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
On Monday, August 30, 2010 07:20:14 Maurice Gittens wrote:
> Hi,
>
> Assume tablex, tabley and tablez are correctly populated in my database.
>
> My purpose is to enforce referential integrity between a column in the
> tablex (the child)
> and a column in tablez (the parent).
>
> Since normal foreign keys do not give me this functionality, I decide
> to write a trigger.
> My trigger function looks something like:
>
> CREATE OR REPLACE FUNCTION trigger_on_tablex() RETURNS trigger AS $$
> BEGIN
>        PERFORM 1 FROM
>                tablex AS tab_x
>                INNER JOIN tabley AS tab_y ON tab_x.gp = tab_y.id
>                INNER JOIN tablez AS tab_z ON tab_y.ml = tab_z.id
>        WHERE
>                tab_x.name = tab_z.name;
>
>        IF NOT FOUND THEN
>                RAISE EXCEPTION 'constraint violated ';
>                END IF;
>  END;$$  LANGUAGE plpgsql;
>
> CREATE TRIGGER mytrigger
>        AFTER INSERT ON tablex  FOR EACH STATEMENT EXECUTE PROCEDURE
> trigger_on_tablex();
>
> My problem is that no matter what I insert into tablex, the exception
> is always raised.
>
> So, it seems that even though my trigger is defined as AFTER INSERT
> FOR EACH STATEMENT, the inserted row
> does not appear to be included in the join.
>
> So, now to my question: Should, as a matter of principle, statement
> level triggers not "see" rows recently inserted into the tablex?
>
> Thanks,
> Maurice

They do "see" those rows. Are you sure that the inner join with tab_Y is not
causing the problem? Just a guess...

--
Terry Lee Tucker
tel: (336) 372-5432; cell: (336) 404-6897
terry@chosen-ones.org

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

Предыдущее
От: "Valoo, Julian"
Дата:
Сообщение: PostgreSQL performance
Следующее
От: Marco Colombo
Дата:
Сообщение: Re: MySQL versus Postgres