Maison > base de données > tutoriel mysql > Comment MySQL gère-t-il les valeurs nulles avec des contraintes uniques ?

Comment MySQL gère-t-il les valeurs nulles avec des contraintes uniques ?

Barbara Streisand
Libérer: 2024-12-07 00:45:12
original
588 Les gens l'ont consulté

How Does MySQL Handle Null Values with Unique Constraints?

Contraintes uniques et valeurs nulles dans MySQL

Dans la conception de bases de données, des contraintes uniques sont souvent utilisées pour garantir que chaque ligne d'une table a un valeur distincte pour une colonne ou un ensemble de colonnes spécifique. Cependant, la question se pose : MySQL gère-t-il les valeurs nulles différemment lors de l'application de ces contraintes ?

Valeurs nulles et contraintes uniques dans MySQL

Contrairement à certains autres systèmes de gestion de bases de données relationnelles ( SGBDR), MySQL autorise plusieurs valeurs nulles dans une colonne qui a une contrainte unique. Cela signifie que, même si la contrainte d'unicité s'applique, MySQL n'empêchera pas plusieurs lignes de contenir des valeurs nulles pour la colonne spécifiée.

Pour illustrer ce comportement, considérons l'instruction MySQL suivante :

CREATE TABLE table1 (x INT NULL UNIQUE);
Copier après la connexion

Dans cet exemple, la colonne « x » est déclarée comme un entier qui accepte les valeurs nulles, et une contrainte unique est appliquée à la colonne. L'exécution des instructions d'insertion suivantes :

INSERT INTO table1 VALUES (1);
INSERT INTO table1 VALUES (1); -- Duplicate entry '1' for key 'x'
INSERT INTO table1 VALUES (NULL);
INSERT INTO table1 VALUES (NULL);
Copier après la connexion

produira le résultat suivant :

SELECT * FROM table1;
Copier après la connexion
x
NULL
NULL
1
Copier après la connexion

Comme vous pouvez le voir, MySQL autorise plusieurs valeurs nulles dans la colonne « x » malgré la contrainte unique. Ce comportement diffère de certains autres SGBDR, tels que SQL Server 2005 et versions antérieures, qui restreignent plusieurs valeurs nulles 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal