Imaginemos que tengo la tabla que genera la siguiente sentencia:
CREATE TABLE Conductores
(
CodigoConductor NUMBER(4) CONSTRAINT PKConductores PRIMARY KEY,
Nombre CHAR(100) CONSTRAINT NNConductoresNombre NOT NULL,
Apellido1 CHAR(100),
Apellido2 CHAR(100),
UNIQUE (Nombre, Apellido1, Apellido2)
);
Mi intención con la constraint UNIQUE es que no pueda haber 2 registros con el mismo nombre, apellido1 y apellido2. Esto funciona correctamente cuando los registros tienen los 3 campos pero si no tienen apellido1 o apellido2 (solo el nombre es NOT NULL y deseo que siga siendo así) no tiene el funcionamiento que yo esperaba (quizas esperaba demasiado), es decir, ejemlos de registros que entran y que no entran:
INSERT (1,'Pepe','Pepe1','Pepe2') -> Entra
INSERT (2,'Pepe','Pepe1','Pepe2') -> NO entra (correcto, es lo que quiero)
INSERT (3,'Pepe') -> Entra
INSERT (4,'Pepe') -> ¡¡¡¡¡ ENTRA !!!! no lo entiendo
INSERT (5,'Pepe','Pepe1') -> Entra
INSERT (6,'Pepe','Pepe1') -> ¡¡¡¡¡ ENTRA !!!! no lo entiendo
¿Alguien sabe como definir la restricción que yo busco (aparte de con trigers)?