MySQL INSERT IGNORE DUPLICATE KEY

MySQL INSERT IGNORE DUPLICATE KEY
Il y a souvent des données contradictoires dans des tables ou des ensembles de résultats. Il faut également du temps à corriger, et souvent des enregistrements répétés doivent être évités. Identifier les enregistrements en double et les supprimer de l'un ou l'autre tableau est nécessaire. Cette section expliquera comment éviter les données en double apparaissant à l'intérieur d'un tableau et comment éliminer les enregistrements en double actuels. Dans ce guide, vous apprendrez à utiliser la clause INSERT INSERT pour éviter l'erreur.

Syntaxe:

Voici la syntaxe de la requête INSERT IGNORE.

>> INSERT IGNORE IN TABLE_NAME (COL1, COL2, COL3) VALEURS (Value_List), (Value_List), (Value_List);

Insérer Ignore via Workbench:

Ouvrez votre Workbench MySQL 8.0 de votre système et connectez-le à l'instance de base de données.

Dans la zone de commande, vous devez créer un «employé» de table avec quatre colonnes où l'une d'entre elles doit être spécifiée comme «unique». Essayez la requête ci-dessous dans la zone de requête Navigator pour créer ce tableau. Sélectionnez la requête entière et cliquez sur le panneau Flash pour l'exécuter.

>> Créer un employé de table (id int key primaire non null, name varchar (50) pas null, âge varchar (50), salaire varchar (50), unique (id));

Lors de la création, vous pouvez trouver le tableau «employé» dans la liste sous l'option de «tables» sous la base de données «Données».

Dans la vue de la grille, vous pouvez saisir les enregistrements sans taper aucune requête. Alors, ouvrez la vue sur la grille de la table «Employé» et ajoutez des enregistrements comme indiqué ci-dessous. Nous avons entré tous les enregistrements uniques sans doublons. Appuyez sur le bouton «Appliquer» pour appliquer les modifications.

Une nouvelle fenêtre sera ouverte avec les requêtes pertinentes liées aux enregistrements que nous avons entrés ci-dessus. Cet écran peut être appelé un écran «examen». Si vous voulez changer quelque chose, vous pouvez le faire ici. Sinon, appuyez sur le bouton Appliquer pour exécuter les requêtes.

Comme vous pouvez le voir, la requête a été exécutée avec succès et les enregistrements sont enregistrés dans la base de données et son tableau «employé». Il aurait généré une erreur si nous avions ajouté une valeur en double dans la colonne «ID». Appuyez sur le bouton «Finition».

Il s'agissait de la vue de la grille. Maintenant, nous insérons des enregistrements via la zone de requête. En attendant, nous avons inséré des enregistrements en double cette fois pour vérifier la sortie. Nous avons donc essayé la requête «insérer» ci-dessous, où nous avons deux listes de valeurs. Les deux listes de valeurs ont la même valeur à la colonne 'id'. Sélectionnez la requête et appuyez sur le panneau Flash pour exécuter la requête.

La requête ne fonctionnera pas correctement et générera une erreur due aux valeurs dupliquées dans la commande INSERT comme affiché dans l'image.

Essayez maintenant la même requête ci-dessus avec la clause INSERT INSONT et exécutez-la comme présenté.

Vous pouvez voir qu'il ne génère pas d'erreur dans la zone de sortie, mais cela donne un avertissement que la commande contient des valeurs en double.

Actualiser la vue sur la grille de la table «Employé». La requête INSERT IGNORE a fonctionné à moitié. Il a inséré la première liste de valeurs dans le tableau, mais la deuxième liste de valeurs a été ignorée en raison de la valeur répétée «13».

Insérer Ignore via le shell de ligne de commande:

Pour comprendre ce concept, ouvrons le shell client de ligne de commande MySQL dans votre système. En demandant, tapez votre mot de passe MySQL pour commencer à travailler dessus.

Maintenant, il est temps de créer une table. Essayez la commande ci-dessous pour le faire. Nous avons créé un tableau nommé «ministre» tandis que l'une de ses colonnes a une contrainte unique. Il est clair que la colonne «ID» n'acceptera que les valeurs uniques et non les valeurs en double.

>> Créer des données de table.Ministre (Mid int Key Primary Unique Not Null, Nom Varchar (45), City Varchar (45));

La requête fonctionne de manière appropriée et le tableau a été créé. Pour comprendre la clause INSERT IGNORE, vous devez d'abord voir le fonctionnement de la commande d'insertion simple. Si vous utilisez la commande INSERT pour insérer plusieurs données d'information à un tableau, MySQL suspend la transaction et génère une exception si une erreur se produit tout au long du traitement. En conséquence, le tableau n'a pas de lignes ajoutées. Insérons le premier record du tableau «ministre» en utilisant la requête inférieure ci-dessous. La requête fonctionnera avec succès parce que la table est actuellement vide, et il n'y a pas d'enregistrement pour contrepartir avec.

Comme la colonne «ID» est unique, lorsque nous essayons l'instruction ci-dessous sur le shell de ligne de commande, il générera une erreur. En effet.

Par conséquent, en vérifiant le tableau, nous pouvons voir que le tableau n'a qu'un enregistrement ajouté par la première requête d'insertion.

>> Sélectionner * à partir des données.ministre;

Inversement, si vous utilisez la clause INSERT INSERGORE, les lignes de données incorrectes qui déclenchent l'erreur seront négligées et entrera uniquement. Dans la commande ci-dessous, nous avons utilisé la commande INSERT INSERT INSITO. Comme vous pouvez le voir, la première liste de valeurs a une valeur en double «11» comme dans la requête précédente. Bien que la deuxième liste de valeurs soit unique, elle affichera 1 enregistrement inséré dans le tableau, qui est la deuxième liste de valeurs. MySQL indique également que un seul enregistrement a été inséré et 1 avertissement est généré dans le message. Vous pouvez alors supposer que si nous utilisons la clause INSERT IGNORE, MySQL fournit un avertissement.

Comme vous pouvez le voir à partir de la sortie ci-dessous, nous n'avons que deux enregistrements dans ce tableau -TheFirst Liste des valeurs fournies dans la requête ci-dessus, qui est négligé.

>> Sélectionner * à partir des données.ministre;

Conclusion:

Nous avons fait tous les exemples nécessaires d'insert Ignore sur des valeurs en double via MySQL Workbench et le shell client de commande de commande MySQL.