| 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: | Whole Thread | Raw Message | 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 |