Lock inside trigger

Поиск
Список
Период
Сортировка
От Josué Maldonado
Тема Lock inside trigger
Дата
Msg-id 40576D9F.5040506@lamundial.hn
обсуждение исходный текст
Ответы Re: Lock inside trigger  ("John Sidney-Woollett" <johnsw@wardbrook.com>)
Список pgsql-general
Hello list,

I have pl/pgsql trigger that before insert a details table it must
update a column in other table, the trigger have this code:

CREATE OR REPLACE FUNCTION public.tg_ecproc_insert()
   RETURNS trigger AS
'    DECLARE
       salproc numeric(12,2);
       BEGIN
        select coalesce(prvsalproc,0) into salproc from
            prvdor where prvcode=new.ecp_provcode;
        -- How do I prevent someone else to change
        -- prvdor.prvsalproc during this transaction
        if new.ecp_dc=''C'' then
            new.ecp_saldo = salproc - new.ecp_valor;
        else
            new.ecp_saldo = salproc + new.ecp_valor;
        end if;
        update prvdor set prvsalproc = new.ecp_saldo
        where prvcode=new.ecp_provcode ;
        -- Here I should be able to unlock the row on
        -- prvdor table
        return new;
       END;
    '
   LANGUAGE 'plpgsql' VOLATILE;

Does postgresql automatically handle the lock on tables updated from
within a trigger? or what's the must appropiate way to get this done?

Thanks in advance,


--

Josué Maldonado




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

Предыдущее
От: Bill Moran
Дата:
Сообщение: Re: L doesn't seem to be working in to_char()
Следующее
От: Joan Picanyol
Дата:
Сообщение: rule as on insert to view with multiple fk referencing the same table