From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com> |
Cc: | Pgsql-Es-Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Regla sobre tabla |
Date: | 2005-03-24 06:41:27 |
Message-ID: | c2d9e70e0503232241702bb371@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Wed, 23 Mar 2005 15:07:51 -0500, Juan Pablo Espino
<jp(dot)espino(at)gmail(dot)com> wrote:
> Que tal, saludos a todos.
>
> Me preguntaba si era posible aplicarle reglas a las tablas
> directamente, asi que intente lo siguiente.
>
> CREATE OR REPLACE RULE prueba AS
> ON DELETE TO journey DO INSTEAD DELETE FROM journey
> WHERE journey.anio = 2001;
>
> Ejecute las instrucciones y todo bien:
>
> Query returned successfully with no result in 130 ms.
>
>
> Bueno la tabla journey tiene dos columnas, disco y anio, entonces pues
> la regla debe eliminar solo la fila en donde journey.anio = 2001, pero
> lamentablemente parece que no es asi y este fue el resultado
>
> ERROR: infinite recursion detected in rules for relation "journey"
>
La regla dice cuando borre una fila en la tabla journey en su lugar
borre de la tabla journey (la misma tabla) los registros con anio =
2001. Pero al ejecutarse la regla estas borrando registros, por lo
tanto se ejecuta la regla otra vez y asi sucesivamente hasta el
infinito. Postgres en vez de dejarte sufrir detecta esto y te lo
advierte, ese es el mensaje.
> me gustaria saber por que sucede esto y si hay alguna forma de usar
> las reglas directamente sobre las tablas, esto es sin necesidad de
> crear una vista a la tabla, salduos y muchas gracias.
>
Si, pero no de la forma en que lo haces, imagina por ejemplo:
CREATE OR REPLACE RULE prueba AS
ON DELETE TO journey DO INSTEAD
UPDATE journey set estado = 'E' WHERE journey.anio = 2001;
De todas formas para hacer cosas asi puedes usar triggers, como
consejo te dire evita el sistema de reglas (por que no es Standard) a
menos que lo consideres la unica alternativa.
atentamente,
Jaime Casanova
From | Date | Subject | |
---|---|---|---|
Next Message | Tomas Eroles i Forner | 2005-03-24 10:04:41 | [Fwd: Re: Saludos] |
Previous Message | Jose Ayala - INCALPACA TPX | 2005-03-23 23:42:22 | Re: Varias cuestiones relacionadas con PostgreSQL |