Thread: Tigger after delete with plpgsql

Tigger after delete with plpgsql

From
Fellipe Henrique
Date:
Hello, I`m try to use this code for my After Delete trigger:

  delete
  from MOVIMENTO
  where (IDEMPRESA = OLD.idempresa) and
        (upper(TABELA) = 'NFENTRADA_ITEM') and
        (CODIGO = OLD.idempresa_item);

But, when execute. show me error.. that`s says

"old is not initialize" (sorry,but I dont know how exactly error msy because in my SO, give in portuguese)..

my question is:  how can I use OLd and NEW in posgre?

Best Regards,


T.·.F.·.A.·.     S+F

Fellipe Henrique P. Soares

"Life is a game without Tutorial"

http://fellipeh.eti.br

Re: Tigger after delete with plpgsql

From
Alan Hodgson
Date:
On Friday, August 31, 2012 02:10:47 PM Fellipe Henrique wrote:
> Hello, I`m try to use this code for my After Delete trigger:
>
>   delete
>   from MOVIMENTO
>   where (IDEMPRESA = OLD.idempresa) and
>         (upper(TABELA) = 'NFENTRADA_ITEM') and
>         (CODIGO = OLD.idempresa_item);
>
> But, when execute. show me error.. that`s says
>
> "old is not initialize" (sorry,but I dont know how exactly error msy
> because in my SO, give in portuguese)..
>
> my question is:  how can I use OLd and NEW in posgre?
>

Just like that. Which implies something else is wrong. Please post the whole
trigger function and a \d of the table where this trigger is used, and the SQL
that you are executing that results in the error.



Re: Tigger after delete with plpgsql

From
Tulio
Date:
<meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">


    Hi,

    You're using a trigger AFTER, in your case could be BEFORE?
    Cause when you use AFTER the var OLD not exists...
    I don't know if I understand exactly what you'll do to ativate this
    trigger..
    but I think maybe is it..

    try..


    Em 31/08/2012 14:10, Fellipe Henrique escreveu:
    <blockquote
cite="mid:CAF1jwZH+cXLCwHwZCF53eBtXADm=u4B_+6kQqJA9GfmctJ=Zaw@mail.gmail.com"
      type="cite">Hello, I`m try to use this code for my After Delete
      trigger:



          delete
          from MOVIMENTO
          where (IDEMPRESA = OLD.idempresa) and
                (upper(TABELA) = 'NFENTRADA_ITEM') and
                (CODIGO = OLD.idempresa_item);


        But, when execute. show me error.. that`s says


        "old is not initialize" (sorry,but I dont know how exactly
          error msy because in my SO, give in portuguese)..


        my question is:  how can I use OLd and NEW in posgre?


        Best Regards,




        T.·.F.·.A<span
          style="color:black">.·.     S+F
        Fellipe
              Henrique P. Soares<span
            style="font-size:7.5pt;color:rgb(102,102,102)" lang="EN-US">

        "Life
              is a game without Tutorial"
        <a
                moz-do-not-send="true" href="http://fellipeh.eti.br"
                target="_blank">http://fellipeh.eti.br

Re: Tigger after delete with plpgsql

From
Fellipe Henrique
Date:
Hi, 

I`m using Before Delete..


CREATE TRIGGER nfentrada_item_tr1
  BEFORE DELETE 
  ON public.nfentrada_item FOR EACH ROW 
  EXECUTE PROCEDURE public.nfentrada_item_ad0();

here is my nfentrada_item_ad0();

    delete
      from MOVIMENTO
      where (IDEMPRESA = OLD.idempresa) and
            (upper(TABELA) = 'NFENTRADA_ITEM') and
            (CODIGO = OLD.idnfentrada_item);
      return old; 

I just want to delete all row in my MOVIMENTO table with these conditionals..

Thanks,


T.·.F.·.A.·.     S+F

Fellipe Henrique P. Soares

"Life is a game without Tutorial"

http://fellipeh.eti.br


2012/8/31 Tulio <tulio@informidia.com.br>
Hi,

You're using a trigger AFTER, in your case could be BEFORE?
Cause when you use AFTER the var OLD not exists...
I don't know if I understand exactly what you'll do to ativate this trigger..
but I think maybe is it..

try..


Em 31/08/2012 14:10, Fellipe Henrique escreveu:
Hello, I`m try to use this code for my After Delete trigger:

  delete
  from MOVIMENTO
  where (IDEMPRESA = OLD.idempresa) and
        (upper(TABELA) = 'NFENTRADA_ITEM') and
        (CODIGO = OLD.idempresa_item);

But, when execute. show me error.. that`s says

"old is not initialize" (sorry,but I dont know how exactly error msy because in my SO, give in portuguese)..

my question is:  how can I use OLd and NEW in posgre?

Best Regards,


T.·.F.·.A.·.     S+F

Fellipe Henrique P. Soares

"Life is a game without Tutorial"

http://fellipeh.eti.br



Re: Tigger after delete with plpgsql

From
Alan Hodgson
Date:
On Friday, August 31, 2012 03:14:15 PM Fellipe Henrique wrote:
> CREATE TRIGGER nfentrada_item_tr1
>   BEFORE DELETE
>   ON public.nfentrada_item FOR EACH ROW
>   EXECUTE PROCEDURE public.nfentrada_item_ad0();
>
> here is my nfentrada_item_ad0();
>
>     delete
>       from MOVIMENTO
>       where (IDEMPRESA = OLD.idempresa) and
>             (upper(TABELA) = 'NFENTRADA_ITEM') and
>             (CODIGO = OLD.idnfentrada_item);
>       return old;
>
> I just want to delete all row in my MOVIMENTO table with these
> conditionals..
>

And the error appears when you do a DELETE FROM public.nfentrada_item? Can you
post the entire function declaration with the CREATE comand?



Re: Tigger after delete with plpgsql

From
fellipeh
Date:
Yes, the error appears when I delete "nfentrada_item" row

Here is code:





--
View this message in context:
http://postgresql.1045698.n5.nabble.com/Tigger-after-delete-with-plpgsql-tp5722154p5722173.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.


Re: Tigger after delete with plpgsql

From
Alan Hodgson
Date:
On Friday, August 31, 2012 12:12:32 PM fellipeh wrote:
> Yes, the error appears when I delete "nfentrada_item" row
> View this message in context:
> http://postgresql.1045698.n5.nabble.com/Tigger-after-delete-with-plpgsql-tp
> 5722154p5722173.html Sent from the PostgreSQL - general mailing list archive
> at Nabble.com.

Well ... I don't know. That runs fine here. Can you post the actual error
message you get? Or a \d on both of those tables.



Re: Tigger after delete with plpgsql

From
fellipeh
Date:
Here is error msg:
http://postgresql.1045698.n5.nabble.com/file/n5722180/erro_PG.png

sorry, but in portuguese..



--
View this message in context:
http://postgresql.1045698.n5.nabble.com/Tigger-after-delete-with-plpgsql-tp5722154p5722180.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.


Re: Tigger after delete with plpgsql

From
Alan Hodgson
Date:
On Friday, August 31, 2012 12:41:42 PM fellipeh wrote:
> Here is error msg:
> http://postgresql.1045698.n5.nabble.com/file/n5722180/erro_PG.png
>
> sorry, but in portuguese..
>
>
>
> --
> View this message in context:
> http://postgresql.1045698.n5.nabble.com/Tigger-after-delete-with-plpgsql-tp
> 5722154p5722180.html Sent from the PostgreSQL - general mailing list archive
> at Nabble.com.

What is the function movimento_ad0()?




Re: Tigger after delete with plpgsql

From
fellipeh
Date:
Found the error... my movimento_ad0() was set to statement .. I change to
Row, and works fine now...

Thanks for all





--
View this message in context:
http://postgresql.1045698.n5.nabble.com/Tigger-after-delete-with-plpgsql-tp5722154p5722190.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.