La restriction unique garantit que presque tous les éléments d'un champ sont distincts les uns des autres. Pour un champ ou un groupe de champs, les limites clés uniques et primaires ont mutuellement une assurance d'individualité. Nous pouvons néanmoins avoir plusieurs contraintes uniques dans chaque tableau, bien qu'une limite de clé primaire pour chaque table. Apprenons-le en essayant quelques exemples.
Contrainte unique via Workbench:
Tout d'abord, nous devons savoir comment ajouter des contraintes uniques à la table tout en utilisant MySQL Workbench 8.0. Ouvrez votre Workbench MySQL nouvellement installé 8.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» de table. Ce tableau 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» comme la colonne «unique»:
>> Créer une personne de table (id int key primaire non null, lastname varchar (255) pas null, premier nom 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 «Navigator» et les «schémas» tout en étant répertorié dans l'option «Tables».
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, il génère une erreur que la colonne «ID» a dupliqué, qui est la valeur «13».
Après avoir corrigé l'enregistrement, lorsque vous appliquez les modifications, cela fonctionnera correctement.
Contrainte unique via le shell de ligne de commande:
Dans le shell de ligne de commande MySQL, nous ajouterons des touches 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 les spécifications de la colonne, nous utilisons le terme unique que vous souhaitez appliquer la loi de l'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 à colonne unique:
>> Créer une table Table_Name (Col DataType unique, Col DataType);
Créons un «fournisseur» de table 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 non null unique, nom varchar (50) pas nul, zone varchar (50));
En vérification, vous pouvez voir que le tableau n'a pas encore de dossiers.
>> Sélectionner * à partir des données.fournisseur;
Insérons les enregistrements dans la table. Le premier enregistrement sera inséré dans la table 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 à la colonne «ID». D'un autre côté, il prend la même valeur qu'il utilise dans la première requête de 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 INSERT. Il générera une erreur que la colonne «ID» obtient une valeur en double, comme indiqué dans l'image ci-dessous.
Tout en vérifiant à nouveau, vous pouvez voir que le tableau 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 déclaration 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 le champ COL1 et COL2 est utilisée par MySQL pour déterminer l'unicité.
>> Créer une table Table_Name (type de données COL1, type de données COL2, UNIQUE (COL1, COL2));
Nous avons créé un tableau «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é «contrainte» est utilisé pour nommer une contrainte de clé unique comme «UC_ADD_SAL». Le mot-clé «unique» est utilisé pour définir une contrainte unique sur les colonnes spécifiées dans les supports, E.g., Adresse et «salaire». Maintenant, nous avons un total de trois colonnes ayant une contrainte «unique» sur eux.
>> Créer des données de table.ministre (Mid int Auto_increment Clé primaire non nul unique, nom varchar (50) pas null, adresse Varchar (50), Job Varchar (50), salaire varchar (50), contrainte uc_add_sal unique (adresse, salaire));
En vérifiant la table, vous pouvez voir que la table est vide maintenant.
>> Sélectionner * à partir des données.ministre;
Insérons des enregistrements dedans. Le premier enregistrement sera ajouté à la table avec succès car il s'agit de la première ligne et il n'y a pas de ligne à égaler.
Entrez un autre enregistrement unique sans aucune valeur en double dans n'importe quelle colonne, comme indiqué ci-dessous.
Cela n'affecte pas lorsque nous entrons les valeurs en double pour les colonnes qui n'ont aucune contrainte «unique» sur eux. Jetez un œil à la requête ci-dessous. Il a une valeur en double à la colonne «Nom» et «Job». Cela fonctionne correctement parce que ces deux colonnes n'ont aucune contrainte «unique» définie sur eux.
D'un autre côté, lorsque nous insérons la valeur en double, E.g., «13» et «Rawalpindi», il générera une erreur, comme indiqué ci-dessous. C'est parce que «13» et «Rawalpindi» ont été spécifiés plus tôt.
En vérification, nous n'avons que trois enregistrements dans le tableau, 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 tout en utilisant le MySQL Workbench 8.0 et MySQL Command-Line Client Shell. J'espère que vous n'aurez aucun problème tout en résolvant des problèmes liés aux clés uniques.