Oui, c'est le comportement attendu dans MySQL (en fait aussi dans ANSI-92). NULL
les valeurs ne sont pas traitées comme des valeurs égales dans les clés uniques et les clés primaires ne peuvent pas contenir NULL
valeurs par définition.
(http://www.contrib.andrew.cmu.edu /~shadow/sql/sql1992.txt )
Étant donné que vous avez la contrainte de clé étrangère sur la colonne nullable, je suggérerais d'ajouter une valeur factice aux tables parent qui indique le fait que le parent n'est pas pertinent ou non déterminé (les enregistrements où ID =0 peut-être) et ajouter le NOT NULL
contrainte à la colonne. (De plus, vous pouvez ajouter la valeur fictive en tant que DEFAULT
).