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

MySQL:índice único que no respeta los valores 'nulos'

Sí, este es el comportamiento esperado en MySQL (de hecho, también en ANSI-92). NULL los valores no se tratan como valores iguales en claves únicas y las claves primarias no pueden contener NULL valores por definición.

(http://www.contrib.andrew.cmu.edu /~shadow/sql/sql1992.txt )

Dado que tiene la restricción de clave externa en la columna anulable, sugeriría agregar un valor ficticio a las tablas principales que indique el hecho de que el elemento principal es irrelevante o no está determinado (los registros donde ID =0 tal vez) y agregue el NOT NULL restricción a la columna. (Además, puede agregar el valor ficticio como DEFAULT ).