Como crear una columna unica pero que admita nulos

09/01/2004 - 00:32 por Carlos | Informe spam
Hola a todos:

Me gustaría crear una columna que admita valores nulos, pero que restrinja
los valores existentes para que sean únicos. Veo que no puedo hacerlo
definiendo una restriccion Unique, porque dos valores null infringen esta
restricción. ¿Como se podría hacer esto?.

Gracias y un saludo.

Carlos
 

Leer las respuestas

#1 Adrian Garcia
09/01/2004 - 07:29 | Informe spam
Hola Carlos,
Hay 2 caminos a seguir aqui
a) Crear un procedimiento almacenado para las inserciones y las
actualizaciones. El chequeo de que el valor sea unico si es diferente de
null se ejecuta antes de realizar la actualizacion y la insercion. Cada vez
que quieras realizar un insert o update sobre una fila tienes que llamar a
estos procedimientos almacenados.
b) Crear un trigger que atrape los insert y update y realice el chequeo que
deseas hacer.

Alguien se anima a armar el codigo de ejemplo de las 2 opciones?

Por un lado la opcion b) tiene la ventaja es que este chequeo se disparara
siempre que se realice un insert o update sobre la tabla, tanto para una
fila como para varias filas. La opcion a) va a tener un mejor rendimiento
pero siempre que se utilice la tabla o una vista sobre la tabla para
realizar inserciones o actualizaciones este chequeo no se realizara. Tampoco
sirve para manipular conjuntos defilas en inserciones/actualizaciones
masivas.

Ahora cual elegir es una desicion que deberas tomar tu.

Saludos
Adrian D. Garcia
NDSoft

"Carlos" wrote in message
news:ZLlLb.2470249$
Hola a todos:

Me gustaría crear una columna que admita valores nulos, pero que restrinja
los valores existentes para que sean únicos. Veo que no puedo hacerlo
definiendo una restriccion Unique, porque dos valores null infringen esta
restricción. ¿Como se podría hacer esto?.

Gracias y un saludo.

Carlos


Preguntas similares