Re: Fwd: Trigger on VIEW not firing

Поиск
Список
Период
Сортировка
От Massimo Costantini
Тема Re: Fwd: Trigger on VIEW not firing
Дата
Msg-id CAO_q5tuw10SewZjtJ+gxxLUhRWqPyCQN0i9PyrQvO8D9Pv9Giw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Fwd: Trigger on VIEW not firing  (Ian Lawrence Barwick <barwick@gmail.com>)
Ответы Re: Fwd: Trigger on VIEW not firing  (Beena Emerson <memissemerson@gmail.com>)
Re: Fwd: Trigger on VIEW not firing  (Beena Emerson <memissemerson@gmail.com>)
Список pgsql-general
Thisi is my real situation, can I do this:

CREATE TABLE alarm(
 name text,
 id integer,
 type text,
 init timestamp,
 fired timestamp,
 end timestamp,
 user test
);

CREATE TABLE car (
  id integer,
  type text,
  speed double
);

CREATE VIEW speedv AS SELECT * FROM car WHERE speed>100;

CREATE OR REPLACE FUNCTION update_alarm_view() RETURNS TRIGGER AS $alarm_tg$
    BEGIN
       IF (TG_OP = 'UPDATE') THEN
           INSERT INTO alarm  VALUES(NEW.type, 0,'SPEED',now(),NULL,NULL,'');
        RETURN NEW;
       ELSEIF (TG_OP = 'INSERT') THEN
            INSERT INTO alarm VALUES(NEW.type, 0,'SPEED',now(),NULL,NULL,'');
            RETURN NEW;
        END IF;
    END;
$alarm_tg$ LANGUAGE plpgsql;

CREATE TRIGGER alarm_tg INSTEAD OF INSERT OR DELETE OR UPDATE ON speedv
    FOR EACH ROW EXECUTE PROCEDURE update_alarm_view();



On Tue, Jul 30, 2013 at 2:49 PM, Ian Lawrence Barwick <barwick@gmail.com> wrote:
2013/7/30 Massimo Costantini <massimo.costantini@gmail.com>:
>
> Hi,
>
> I have a problem with Triggers on VIEW:
>
> suppose I have:
>
> CREATE TABLE work (
>   id integer NOT NULL,
>   work TEXT,
>   worktype TEXT
> );
>
> CREATE VIEW worksub AS SELECT FROM work WHERE worktype='subordinate';
>
>
> CREATE OR REPLACE FUNCTION wrk_view() RETURNS TRIGGER AS $wrk_tg$
>     BEGIN
>         RAISE NOTICE 'UPDATE VIEW FROM: % OPERATION: %',TG_TABLE_NAME,
> TG_OP;
>     END;
> $wrk_tg$ LANGUAGE plpgsql;
>
> CREATE TRIGGER wrk_tg INSTEAD OF INSERT OR DELETE OR UPDATE ON worksub
>     FOR EACH ROW EXECUTE PROCEDURE wrk_view();
>
> nothing appen when I insert row in work table.

The trigger is on the view "worksub", not the "work" table.

BTW the trigger function doesn't return anything, which will cause an error.
(Also the view definition is missing column definitions in the SELECT clause).

Regards

Ian Barwick

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

Предыдущее
От: Beena Emerson
Дата:
Сообщение: Re: Fwd: Trigger on VIEW not firing
Следующее
От: Beena Emerson
Дата:
Сообщение: Re: Fwd: Trigger on VIEW not firing