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

Clés composées MySql et valeurs nulles

http://dev.mysql.com/doc/refman /5.0/fr/create-index.html

"Un index UNIQUE crée une contrainte telle que toutes les valeurs de l'index doivent être distinctes. Une erreur se produit si vous essayez d'ajouter une nouvelle ligne avec une valeur de clé qui correspond à une ligne existante. Cette contrainte ne s'applique pas aux valeurs NULL sauf pour le Moteur de stockage BDB. Pour les autres moteurs, un index UNIQUE autorise plusieurs valeurs NULL pour les colonnes pouvant contenir NULL."

Donc, non, vous ne pouvez pas faire en sorte que MySQL traite NULL comme une valeur unique. Je suppose que vous avez plusieurs choix :vous pouvez faire ce que vous avez suggéré dans votre question et stocker une "valeur spéciale" au lieu de null, ou vous pouvez utiliser le moteur BDB pour la table. Cependant, je ne pense pas que cette différence mineure de comportement justifie de faire un choix inhabituel de moteur de stockage.