123 votes

Contrainte unique qui autorise les valeurs vides dans MySQL

J'ai un champ qui stocke les codes de produits. Ces codes sont uniques, mais certains produits n'ont tout simplement pas de code. Je ne peux pas inventer de codes car ce sont des codes de fournisseurs.

Ce type de contrainte est-il possible dans MySQL ?

Je suis un novice en matière de procédures stockées et de déclencheurs, donc si la solution implique l'un de ces éléments, soyez patient.

Mise à jour : La colonne n'est PAS NULLE. C'est pourquoi je n'ai pas pu le faire.

188voto

Oui, vous pouvez le faire. Voir le 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 valeur de clé qui correspond à une ligne existante. Pour tous les moteurs, un index UNIQUE autorise plusieurs valeurs NULL pour les colonnes qui peuvent contenir NULL.

13voto

chaos Points 69029

Oui, si vous rendez la colonne du code produit nullable (non déclarée avec l'option NOT NULL ), la clé unique permettra à plusieurs lignes avec NULL codes produits.

8voto

cg. Points 1946

MySQL permet toujours à plusieurs lignes d'avoir une valeur de NULL dans une colonne unique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X