Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2008, 04:59
veroman
 
Fecha de Ingreso: marzo-2007
Mensajes: 34
Antigüedad: 17 años, 1 mes
Puntos: 1
check de dos columnas de la misma tabla

Hola a todos,
estoy intentando hacer una constraint en una tabla 'tabla', la cual tiene (entre otras) las columnas 'campo1 number(3) null' y 'campo2 number(3) null', de tal modo que estos dos campos no puedan tomar un valor DISTINTO de null simultáneamente.
Es decir, campo1 y campo2 podrán ser null al mismo tiempo, serlo uno y el otro no, pero nunca tener un valor distinto de null en la misma tupla.
Lo he intentado con la siguiente declaración:
ALTER TABLE tabla ADD CONSTRAINT CK_tabla CHECK (((campo1 = NULL) AND (campo2 = NULL)) OR ((campo1 = NULL) AND (campo2 != NULL)) OR ((campo1 != NULL) AND (campo2 = NULL )));
Pero no funciona, ya que me deja ingresar los campos 'campo1' y 'campo2' con valores distintos de null en el mismo registro. He leído que todas las comparaciones con NULL van a dar como resultado NULL, entonces no sé como comparar ni hacer la comprobación.
Alguien sabría comentarme alguna solución, o decirme si lo que estoy intentando es posible o no?
Muchas gracias a todos