From: | Felipe de Jesús Molina Bravo <felipe(dot)molina(at)inegi(dot)gob(dot)mx> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: funcionamiento diferente en triggers |
Date: | 2007-01-31 14:53:01 |
Message-ID: | 1170255182.7873.0.camel@fjmb |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Muchas gracias por la información ... lo que encuentre lo publicaré
Seguimos
El mié, 31-01-2007 a las 11:32 -0300, Alvaro Herrera escribió:
> Felipe de Jesús Molina Bravo escribió:
> > Una disculpa por el error. Va un copy/paste de los scripts. Al terminar
> > de ejecutar el script de abajo, ya tendran datos en la tabla de producto
> > y lugar. Si hacen un "update producto set us = '2' where idp=1"
> > provocará que se borren los registros de lugar y por lo tanto el
> > contador de producto se ponga en 0 .... y claro que el atributo "us" de
> > producto en '2'.....
>
> Creo que el problema es que la tupla que debe actualizarse en el UPDATE
> ya no existe cuando el trigger termina, puesto que le hiciste los varios
> UPDATES en el otro trigger. La solución a esto sería, como ya
> descubriste, poner esos DELETEs a "lugar" en un trigger AFTER, porque
> así el UPDATE en producto se haría antes que esos otros DELETEs invoquen
> al trigger que hace el UPDATE.
>
> Es posible que esto esté documentado, pero en este momento no tengo el
> tiempo de investigar el tema.
>
> BTW en esa funcion donde te dije que pusieras RETURN NEW en lugar de
> RETURN NULL, tienes razon que no tiene nada que ver con tu problema,
> pero es confuso; yo en su lugar pondria un RAISE EXCEPTION para que sea
> muy evidente lo que deseas que suceda.
>
From | Date | Subject | |
---|---|---|---|
Next Message | Edwin Quijada | 2007-01-31 15:00:43 | Re: Borrado de base de datos |
Previous Message | Guido Barosio | 2007-01-31 14:49:29 | Re: No puedo descargar Postresql 8.2.1 desde ningún mirror |