Re: Problema con Foreign keys

From: "Pablo E(dot) Siciliano" <psiciliano(at)puentenet(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Problema con Foreign keys
Date: 2005-04-04 18:13:37
Message-ID: 000801c53942$05c098a0$2300a8c0@PuenteHnos.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Al final, encontré la forma de hacerlo. Para que funcione, dividí la tabla
de relaciones en varias, una por tabla hija. De esa manera la foreign key
funciona perfecto.

Saludos!
Pablo E. Siciliano.

----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)dcc(dot)uchile(dot)cl>
To: "Pablo E. Siciliano" <psiciliano(at)puentenet(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Friday, April 01, 2005 6:04 PM
Subject: Re: [pgsql-es-ayuda] Problema con Foreign keys

On Fri, Apr 01, 2005 at 05:44:00PM -0300, Pablo E. Siciliano wrote:
> Hola a todos.
>
> Estoy teniendo un problema raro con dos tablas, que describo al final. El
> asunto es que cuando hago in insert en orden_pasaje, de dos id_orden que
> estoy seguro que estan en orden, recibo como respuesta:
>
> ERROR: insert or update on table "orden_pasaje" violates foreign key
> constraint "orden_pasaje_id_orden_origen_fkey"
> DETAIL: Key (id_orden_origen)=([id_orden_destino]) is not present in
table
> "orden".
>
> ¿Estoy cometiendo algún error con el diseño de las tablas? No se si tendrá
> algo que ver (Sospecho que no), pero orden es heredada por varias tablas.

Las llaves foraneas no funcionan bien con herencia; los registros que
estan en tablas "heredadas" no son visibles desde la tabla con la llave
foranea.

Una solucion es no usar herencia. Otra es mantener las llaves aparte,
en una tabla auxiliar, que agrupe todo lo que viene de la jerarquia de
herencia, y hacer que las llaves foraneas apunten alli. Para mi gusto
la 1era solucion es mas limpia.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Aprender sin pensar es inútil; pensar sin aprender, peligroso" (Confucio)

--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.308 / Virus Database: 266.8.6 - Release Date: 2005-03-30

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Pablo Espino 2005-04-04 18:21:38 Re: Desuscribirme
Previous Message Damian Culotta 2005-04-04 17:47:15 Crear y usar funciones