J'ai un champ qui stocke les codes produits. Les codes sont uniques, mais certains produits n'ont tout simplement pas de code. Je ne peux pas inventer de codes parce que ce sont des codes de fournisseurs.
Ce type de contrainte est-il possible dans MySQL?
Je suis un noob avec des procédures stockées et des déclencheurs, donc si la solution implique l'un d'entre eux, veuillez être patient.
Mise à jour: la colonne n'est PAS nulle. C'est pourquoi je n'ai pas pu faire ça.
Oui, vous pouvez le faire. Voir 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 pouvant contenir NULL.
Oui, si vous rendez la colonne de code produit nullable (non déclarée avec NOT NULL
), la clé unique autorisera plusieurs lignes avec NULL
codes produits.
MySQL permet toujours à plusieurs lignes d'avoir une valeur de NULL
dans une colonne unique.