Lock inside trigger - Mailing list pgsql-general

From Josué Maldonado
Subject Lock inside trigger
Date
Msg-id 40576D9F.5040506@lamundial.hn
Whole thread Raw
Responses Re: Lock inside trigger
List 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 by date:

Previous
From: Bill Moran
Date:
Subject: Re: L doesn't seem to be working in to_char()
Next
From: Joan Picanyol
Date:
Subject: rule as on insert to view with multiple fk referencing the same table