From: | Jorge Lobo Arteaga <jorgeloboa(at)hotmail(dot)com> |
---|---|
To: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Constraint Check de varios campos en varias combinaciones |
Date: | 2016-02-25 19:33:41 |
Message-ID: | SN1PR16MB0158A5958D82BA530D0C2F45D5A60@SN1PR16MB0158.namprd16.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenas tardes,
Tengo una tabla así
create table predio(
tipo integer not null,
nom varchar(40),
apto char(6),
constraint ck_tipo_predio_de_1_a_5 check(tipo >= 1 and tipo<=5)
);
'nom' y 'apto' no son NOT NULL debido a que la obligatoriedad de dichos campos dependen del valor del campo 'tipo',
teniendo en cuenta las siguientes condiciones.
El campo 'tipo' almacena los tipos de predios así: 1-Casa, 2-Casa lote, 3-Apartamento, 4-Edificio, 5-Conjunto cerrado.
El campo 'nom' almacena el nombre del predio, solo si el tipo de predio es 3, 4 o 5. Caso contrario será NULL.
El campo 'apto' almacena el número de apartamento o vivienda, solo si el tipo de predio es 4 o 5. Caso contrario será NULL.
Los campos 'nom' y 'apto' serán NULL, solo si tipo de predio es 1 o 2.
No he podido hacer que las restricciones de tablas funcionen usando CHECK. He insistido bastante, pero creo que solo se va a poder
usando TRIGGERS.
Gracias por su apoyo.
From | Date | Subject | |
---|---|---|---|
Next Message | Cristobal Alexis Ibarra Gonzalez | 2016-02-25 19:42:03 | Ayuda para pasar resultados de una tabla en csv |
Previous Message | Alvaro Herrera | 2016-02-25 15:42:53 | Re: Replicacion asincrona de base de datos en vez de cluster |