Problema con vista, regla, e insert multiple

From: Javier Rotelli <javier(dot)rotelli(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Problema con vista, regla, e insert multiple
Date: 2011-01-10 16:48:35
Message-ID: AANLkTimVaCp29=QsKTJhZpoWq8LOrQ3-U3V+saRwVkEr@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

estimados:

estoy trabajando ahce poco con postgreSQL. y me surgio un problema que no
puedo solucionar:

tengo dos tablas, realacionadas mediante una FK de la siguiente manera:

A B
ID |------>ID
DatoA | DATO1
DatoB |
DatoC |
ID_B---------|

arme una vista que tiene la siguiente estructura:
SELECT A.ID, A.DatoA, A.DatoB, A.DatoC, B.Dato1
FROM A JOIN B ON A.ID_B = B.ID

el problema viene cuando quiero armar las reglas que hagan que se pueda
inserta en la vista.
si la regla consta de un solo insert funciona, ahora, la regla que defini
para el caso de querer insertar un valor de Dato1 que no este en B, inserta
en B, pero no hace el insert en A.
es una limitacion de las reglas? o estoy armandolas mal?

CREATE OR REPLACE RULE insert_nuevo_Dato1 AS
ON INSERT TO vista_AB
WHERE NOT (new.Dato1 IN ( SELECT Dato1
FROM B))
DO INSTEAD (
INSERT INTO B (Dato1)
VALUES (new.Dato1);

INSERT INTO A (ID, DatoA, DatoB, DatoC)
VALUES (new.ID, new.DatoA, new.DatoB, new.DatoC);
);

buscando encontre que la herramienta que estaba utilizando(pgAdmin III)
tiene un bug que no permite agregar multiples sentencias en una regla, por
lo que tuve que crearla mediante psql. pero aun asi, el 2º insert sigue sin
ejecutarse.

lo que quiero hacer no se puede hacer mediante reglas? o me estoy
equivocando en algo?

muchas gracias por su atencion.
Javier Rotelli

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Aquino H. 2011-01-10 16:58:26 RE: Problema con vista, regla, e insert multiple
Previous Message Ing. Yunior Mesa Reyes 2011-01-10 14:50:58 Para participantes extranjeros en el Tercer PGDay Latinoamericano.