MySQL MariaDB

Utiliser les contraintes uniques de MySQL

Utiliser les contraintes uniques de MySQL
MySQL CONSTRAINT est rejeté pour décrire les règles qui autorisent ou restreignent les valeurs dans les champs qui peuvent contenir ou limiter les données qui peuvent être saisies dans les lignes. Le but d'imposer des restrictions est de maintenir la crédibilité d'une base de données. L'un d'eux est la contrainte UNIQUE.

La restriction UNIQUE garantit que presque tous les éléments d'un champ sont distincts les uns des autres. Pour un domaine ou un groupe de domaines, les limites UNIQUE et PRIMARY KEY ont mutuellement une assurance d'individualité. Nous pouvons, néanmoins, avoir plusieurs restrictions UNIQUES dans chaque table, bien qu'une limite PRIMARY KEY pour chaque table à la place. Apprenons-le en essayant quelques exemples.

Contrainte unique via Workbench :

Tout d'abord, nous devons apprendre à ajouter des contraintes uniques à la table tout en utilisant MySQL Workbench 8.0. Ouvrez votre MySQL Workbench 8 nouvellement installé.0 et connectez-le à la base de données.

Dans la zone de requête, vous devez écrire la commande ci-dessous pour créer une table 'Personne'. Cette table a 4 colonnes avec une clé primaire. Nous devons spécifier une colonne unique. Comme vous pouvez le voir, nous avons effacé la colonne « Id » en tant que colonne « UNIQUE » :

>> CREATE TABLE Person (ID int PRIMARY KEY NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, UNIQUE(ID));

Maintenant la table "Personne" a été créée avec sa colonne "UNIQUE" "ID". Vous pouvez trouver le tableau sous le « Navigateur » et « Schémas » tout en étant répertorié dans l'option « Tableaux ».

Lors de l'insertion des enregistrements, lorsque vous appuyez sur le bouton « Appliquer », il examinera les enregistrements insérés comme indiqué ci-dessous. Vous pouvez voir que nous avons un enregistrement dupliqué aux lignes 3 et 4 qui a le même « ID ». Appuyez sur le bouton « Appliquer » pour appliquer les modifications.

Dans l'image ci-dessous, cela génère une erreur que la colonne "ID" a dupliquée, qui est la valeur "13".

Après avoir corrigé l'enregistrement, lorsque vous appliquez les modifications, il fonctionnera correctement.

Contrainte unique via le shell de ligne de commande :

Dans le shell de ligne de commande MySQL, nous ajouterons des clés UNIQUES à une ou plusieurs colonnes. Ouvrez d'abord votre ligne de commande pour avoir un aperçu de chacun dans les exemples ci-dessous. Tapez votre mot de passe pour utiliser le shell de commande.

Exemple 01 : Sur une seule colonne

Dans cette syntaxe, comme dans la spécification de colonne, nous utilisons le terme UNIQUE que vous souhaitez appliquer la loi d'unicité. Une fois que nous avons inséré ou modifié une valeur qui crée des doublons dans la colonne particulière, la modification sera refusée par MySQL et une exception sera également donnée. Il y aura une restriction de colonne dans cette limite particulière. Et vous pouvez également l'utiliser pour implémenter la règle unique d'un champ. Voici une syntaxe pour une clé UNIQUE à une seule colonne :

>> CREATE TABLE nom_table( col datatype UNIQUE, col datatype);

Créons une table "fournisseur" dans la base de données "données" avec trois colonnes dedans. La colonne « ID » est définie comme « UNIQUE ».

>> CRÉER des données de TABLE.fournisseur( id INT AUTO_INCREMENT NOT NULL UNIQUE, Nom VARCHAR(50) NOT NULL, Area VARCHAR(50));

En vérifiant, vous pouvez voir que la table n'a pas encore d'enregistrements.

>> SÉLECTIONNER * À PARTIR des données.fournisseur;

Insérons les enregistrements dans la table. Le premier enregistrement sera inséré dans le tableau en douceur, comme indiqué ci-dessous.

Le deuxième enregistrement sera à nouveau inséré en douceur car il n'a pas de valeurs en double dans la colonne « ID ». D'autre part, il prend la même valeur qu'il utilise dans la première requête à la colonne "Zone".

Lors de l'insertion du troisième enregistrement, nous avons fourni la valeur en double « 1 » comme nous l'avons fourni dans la première instruction d'insertion. Cela générera une erreur indiquant que la colonne "ID" obtient une valeur en double, comme indiqué dans l'image ci-dessous.

En vérifiant à nouveau, vous pouvez voir que la table n'a que l'enregistrement des deux premières instructions d'insertion. Bien qu'il n'y ait pas d'enregistrement de la troisième instruction d'insertion.

>> SÉLECTIONNER * À PARTIR des données.fournisseur;

Exemple 02 : Sur plusieurs colonnes

Avec ce format, après le terme UNIQUE, nous appliquons un ensemble de colonnes séparées par des virgules entre parenthèses. La composition des valeurs dans les champs col1 et col2 est utilisée par MySQL pour déterminer l'unicité.

>> CREATE TABLE nom_table( type de données col1, type de données col2, UNIQUE(col1,col2));

Nous avons créé une table « ministre » dans la base de données « données » avec cinq colonnes. La colonne « ID » est définie comme « UNIQUE » et « PRIMAIRE ». Le mot-clé "CONSTRAINT" est utilisé pour nommer une contrainte de clé unique comme "uc_add_sal". Le mot clé « UNIQUE » permet de définir une contrainte UNIQUE sur les colonnes spécifiées entre parenthèses, e.g., Adresse et « salaire ». Maintenant, nous avons un total de trois colonnes ayant une contrainte "UNIQUE" sur elles.

>> CRÉER des données de TABLE.minister( Mid INT AUTO_INCREMENT PRIMARY KEY NOT NULL UNIQUE, Nom VARCHAR(50) NOT NULL, Address VARCHAR(50), Job VARCHAR(50), Salary VARCHAR(50), CONSTRAINT uc_add_sal UNIQUE (Adresse, Salaire));

En vérifiant la table, vous pouvez voir que la table est vide en ce moment.

>> SÉLECTIONNER * À PARTIR des données.ministre;

Insérons-y quelques enregistrements. Le premier enregistrement sera ajouté à la table avec succès car il s'agit de la première ligne et il n'y a aucune ligne avec laquelle correspondre.

Entrez un autre enregistrement unique sans valeurs en double dans aucune colonne, comme indiqué ci-dessous.

Cela n'affecte pas lorsque nous entrons les valeurs en double pour les colonnes qui n'ont pas de contrainte "UNIQUE" sur elles. Jetez un oeil à la requête ci-dessous. Il a une valeur en double dans les colonnes « Nom » et « Travail ». Cela fonctionne correctement car ces deux colonnes n'ont pas de contrainte "UNIQUE" définie sur elles.

D'autre part, lorsque nous insérons la valeur en double, e.g., « 13 » et « Rawalpindi », cela générera une erreur, comme indiqué ci-dessous. En effet, « 13 » et « Rawalpindi » ont été spécifiés plus tôt.

A la vérification, nous n'avons que trois enregistrements dans la table, insérés par les trois premières requêtes.

>> SÉLECTIONNER * À PARTIR des données.ministre;

Conclusion:

Nous avons gracieusement fait tous les exemples de définition de contraintes UNIQUES sur les colonnes simples et multiples lors de l'utilisation de MySQL Workbench 8.0 et shell client en ligne de commande MySQL. Espérons que vous n'aurez aucun problème lors de la résolution des problèmes liés aux clés UNIQUES.

Bataille pour Wesnoth 1.13.6 Développement publié
Bataille pour Wesnoth 1.13.6 publiée le mois dernier, est la sixième version de développement de la 1.13.x series et il apporte un certain nombre d'am...
Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...
Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...