Re: Re: [pgsql-es-ayuda] relación a una tabla u a otra tabla

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Laura Martinelli <lmartinelli(at)unlu(dot)edu(dot)ar>
Cc: Jaime Casanova <jaime(at)2ndquadrant(dot)com>, POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Re: [pgsql-es-ayuda] relación a una tabla u a otra tabla
Date: 2014-04-21 14:13:33
Message-ID: 20140421141332.GC25695@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Laura Martinelli escribió:
> Ok, lo pruebo!
> Me queda esta duda, qué hago con las claves foráneas para que no me
> de error en una de ellas cuando valide la otra. O directamente las
> borro y me aseguro con este check la integridad referencial?

No entiendo. Las claves van cada una en una columna; en cada registro,
una de las columnas debe llevar valor NULL, y la otra debe llevar un
valor no NULL. La integridad referencial se chequeará sólo para la
columna no NULL. Lo que hace este CHECK es asegurar que una (y sólo
una) de las dos restricciones será verificada.

> El 21/04/14 10:03, Alvaro Herrera escribió:
> >Jaime Casanova escribió:
> >
> >>Finalmente, para asegurarte que este el uno o el otro agregas un
> >>constraint check de este modo:
> >>CHECK ((codigo_materia IS NOT NULL AND codigo_taller IS NULL) OR
> >>(codigo_materia IS NULL AND codigo_taller IS NOT NULL))
> >creo que puedes decir lo mismo, más breve,
> >
> >CHECK (codigo_materia IS NULL <> codigo_taller IS NULL)

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Sergio Valdes Hurtado 2014-04-21 14:33:00 Restore selectivo
Previous Message Laura Martinelli 2014-04-21 14:01:48 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] relación a una tabla u a otra tabla