Re: Triggers

Поиск
Список
Период
Сортировка
От Jean-Christian Imbeault
Тема Re: Triggers
Дата
Msg-id 3D5D0BCF.5080304@mega-bucks.co.jp
обсуждение исходный текст
Ответ на Triggers  (Jean-Christian Imbeault <jc@mega-bucks.co.jp>)
Ответы Re: Triggers  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
Tom Lane wrote:
 >
 > I think we check constraints (including NOT NULL) before firing
 > triggers.

Seems like the trigger gets fired before the constraint checking. I have
the following table and trigger and SQL that all seem to work:

create table TMP_LI (

cart_id                 integer         references TMP_CART(id),
li_id                   integer         not null,
shop_id                 integer         references CHARISMA_SHOPS(id),
prod_id                 char(12)        references PRODUCTS(id),
quantity                int2            not null,
price                   integer         not null,

primary key (cart_id, li_id)
);

create or replace function set_price() returns opaque as '
   declare
     row record;
   begin
     select into row sell_price from products where id=new.prod_id;
     new.price = row.sell_price;
     return new;
   end;
' language 'plpgsql';

create trigger insert_into_tmp_li before insert or update
   on tmp_li for each row
   execute procedure set_price();

insert into tmp_li(cart_id,li_id,shop_id,prod_id,quantity,price)
values('31','0','','289000101554','1')

Jc


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Triggers
Следующее
От: Darren Ferguson
Дата:
Сообщение: Re: Triggers