RE: Problema con vista, regla, e insert multiple

From: "Javier Aquino H(dot)" <JAquino(at)LexusEditores(dot)com>
To: "'Javier Rotelli'" <javier(dot)rotelli(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Problema con vista, regla, e insert multiple
Date: 2011-01-10 18:06:29
Message-ID: !&!AAAAAAAAAAAYAAAAAAAAABnJyuKwyORPiEp2CPpUvXzigAAAEAAAAOOzjP5oQmhPikGqKBfxAIwBAAAAAA==@LexusEditores.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

OK,

Entonces el insert en B debería retornar el ID de B para que lo puedas
insertar en A.

Slds,.

Javier.

De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Javier Rotelli
Enviado el: lunes, 10 de enero de 2011 01:01 p.m.
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Problema con vista, regla, e insert multiple

gracias por la pronta respuesta.

me olvide de poner, que los dos ids tienen como valor por default secuencias
que les asignan automaticamente un numero. asi que por ese lado no pareciera
estar el problema

El 10 de enero de 2011 13:58, Javier Aquino H. <JAquino(at)lexuseditores(dot)com>
escribió:

Por lo que veo al hacer el INSERT en B solo insertas DATO1, pero no veo que
ingreses el ID.

Slds,

Javier.

De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Javier Rotelli
Enviado el: lunes, 10 de enero de 2011 11:49 a.m.
Para: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: [pgsql-es-ayuda] Problema con vista, regla, e insert multiple

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Silvio Quadri 2011-01-10 18:15:53 Re: Problema con vista, regla, e insert multiple
Previous Message Javier Rotelli 2011-01-10 18:00:54 Re: Problema con vista, regla, e insert multiple