Contrainte unique MySQL : valeurs nulles
Dans MySQL, des contraintes uniques sont appliquées pour garantir l'unicité des valeurs dans une colonne spécifiée. Cependant, lorsqu'il s'agit d'adresses e-mail, un scénario courant consiste à utiliser des valeurs nulles pour représenter une adresse facultative ou non fournie. Cela soulève la question :
MySQL peut-il autoriser plusieurs valeurs nulles dans une colonne avec une contrainte unique ?
Réponse :
Oui, MySQL autorise plusieurs valeurs nulles dans une colonne ayant une contrainte unique. Ce comportement diffère de certains autres systèmes de bases de données.
Exemple :
L'instruction SQL suivante crée une table nommée table1 avec une colonne entière x qui est définie comme unique et permet valeurs nulles :
CREATE TABLE table1 (x INT NULL UNIQUE);
L'insertion de valeurs nulles en double dans ce tableau ne générera pas de erreur :
INSERT table1 VALUES (1); INSERT table1 VALUES (1); -- Duplicate entry '1' for key 'x' INSERT table1 VALUES (NULL); INSERT table1 VALUES (NULL);
L'exécution d'une requête pour récupérer tous les enregistrements de la table1 produira le résultat suivant :
SELECT * FROM table1;
x |
---|
NULL |
NULL |
1 |
Remarque : Ce comportement est spécifique à MySQL. D'autres systèmes de bases de données, tels que SQL Server 2005 et versions antérieures, limitent l'autorisation d'une seule valeur nulle dans les colonnes avec des contraintes uniques.
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!