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" <pedr...@outlook.com> > Para: pgsql-es-ayuda@postgresql.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@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda