Contrainte unique qui autorise des valeurs vides dans MySQL

J’ai un champ qui stocke les codes de produit. Les codes sont uniques, mais certains produits n’ont tout simplement pas de code. Je ne peux pas inventer des codes car ce sont des codes 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 de ceux-ci, s’il vous plaît soyez patient.

Mise à jour: la colonne n’est pas nulle. C’est pourquoi je n’ai pas pu faire cela.

    Oui, vous pouvez le faire. Voir la 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’append une nouvelle ligne avec une valeur de clé correspondant à 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 de produit nullable (non déclarée avec NOT NULL ), la clé unique autorisera plusieurs lignes avec des codes de produit NULL .

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