Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL :index unique ne respectant pas les valeurs `null`

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 ).