Re: funcionamiento diferente en triggers

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Felipe de Jesús Molina Bravo <felipe(dot)molina(at)inegi(dot)gob(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: funcionamiento diferente en triggers
Date: 2007-01-31 14:32:53
Message-ID: 20070131143253.GE22158@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guido Barosio 2007-01-31 14:49:29 Re: No puedo descargar Postresql 8.2.1 desde ningún mirror
Previous Message Paulina Quezada 2007-01-31 14:26:45 No puedo descargar Postresql 8.2.1 desde ningún mirror