sql >> Base de Datos >  >> RDS >> Mysql

MySQL:ÚNICO, pero NULO POR DEFECTO:permitido mediante la creación de una tabla. Se permite insertar más de 1 NULL. ¿Por qué?

De acuerdo con la especificación SQL 92 (y cómo la lee), las restricciones únicas están destinadas a indicar claves candidatas y, por lo tanto, no deberían permitir valores duplicados ni valores NULOS. DB2 implementa sus restricciones únicas de esta manera. Más de unos pocos proveedores de bases de datos (incluido MySQL) interpretan la especificación como si ignorara los valores NULL, al igual que la cláusula Group By ignora los valores NULL y, por lo tanto, implementan restricciones únicas que solo se aplican a valores que no son NULL. Aún otros, tratan el NULL como su propio valor especial y solo permiten una entrada que es NULL. Microsoft SQL Server implementa restricciones únicas de esta manera. El único aspecto que es consistente entre todos los proveedores con respecto a las restricciones únicas es que los valores que no son NULL deben ser únicos.