Contraintes uniques avec des valeurs vides dans MySQL
Considérez un scénario dans lequel vous disposez d'un champ stockant des codes de produit qui doivent être uniques, mais certains produits manquent de codes de fournisseur désignés. La question se pose, est-il possible de définir une contrainte unique qui s'adapte à ce scénario dans MySQL ?
Réponse :
Oui, il est possible de créer une contrainte unique qui autorise les valeurs vides dans MySQL. Comme mentionné dans le manuel de référence MySQL (version 5.5) :
"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 clé valeur qui correspond à une ligne existante. Pour tous les moteurs, un index UNIQUE autorise plusieurs valeurs NULL pour les colonnes pouvant contenir NULL."
Par conséquent, pour une colonne qui autorise les valeurs NULL, malgré son NOT. Propriété NULL, elle est parfaitement valable pour définir une contrainte unique sans conduire à des conflits. Cela permet des situations dans lesquelles certains produits ne possèdent pas de codes attribués, ce qui leur permet d'être insérés dans la base de données sans violer l'exigence d'unicité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!