Re: Restricción CHECK: evitar que exista ID de tabla A en tabla B

From: Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar>
To: Pedro PG <pedropg(at)outlook(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Restricción CHECK: evitar que exista ID de tabla A en tabla B
Date: 2014-08-29 16:48:29
Message-ID: 1958992684.7438.1409330909910.JavaMail.root@fmed.uba.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hasta donde veo, hay una suma de check con una suerte de "ANTI"-FK. Los "CHECK" son condiciones o restricciones a nivel local (de la tabla en si), y no permiten chequear valores (o existencia) en otras tablas.

En versiones nuevas de PG, lo que si existen son triggers condicionados, a los cuales podes darles una condicion para que se disparen (en este caso, que tabla_a.estado = TRUE, y luego disparar el trigger que verifique la no-existencia de dicho valor en tabla_b.

HTH
Gerardo
----- Mensaje original -----
> De: "Pedro PG" <pedropg(at)outlook(dot)com>
> Para: pgsql-es-ayuda(at)postgresql(dot)org
> Enviados: Viernes, 29 de Agosto 2014 11:21:00
> Asunto: [pgsql-es-ayuda] Restricción CHECK: evitar que exista ID de tabla A en tabla B
>
>
> Hola, deseo crear una restricción en una tabla:
>
>
> Tengo 2 tablas =>
>
>
> * tabla_a -|----<- tabla_b
>
>
> - tabla_a (id serial pk, descrip varchar, estado booblean)
> - tabla_b (id serial pk, id_tabla_a integer fk, descrip varchar)
>
>
> Deseo agregar una restricción a la tabla_a, si el campo "estado" es
> true no debe haber ninguna referencia en la tabla_b de la tabla_a.
>
>
> Espero me den un empujón.
> Saludos.
>
> Bach. Ing. de Sistemas Pedro Ricardo Pejerrey Gómez
> ------------------------------------------------------------------------
> Área de TI en Provias Nacional - Zonal Piura - Tumbes
> Analista Programador && DBA
> FreeLancer MVC
>
>

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

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Álvaro Hernández Tortosa 2014-08-29 18:16:36 Re: Duda con procedimientos almacenados.
Previous Message Gerardo Herzig 2014-08-29 16:35:53 Re: contar distintos con ventana?