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.