MySQL INSERT IGNORE

Lorsque vous utilisez l’instruction INSERT pour ajouter plusieurs lignes à une table et si une erreur se produit pendant le traitement, MySQL met fin à l’instruction et renvoie une erreur. En conséquence, aucune ligne n’est insérée dans la table.

Pourtant, si vous utilisez l’instruction INSERT IGNORE, les lignes contenant des données non valides à l’origine de l’erreur sont ignorées et les lignes contenant des données valides sont insérées dans la table.
 
 

Exemple en utilisant l’instruction INSERT IGNORE

Nous allons créer une nouvelle table appelée « Contact » pour la démonstration.

CREATE TABLE Contact (
    id INT PRIMARY KEY AUTO_INCREMENT,
    num_tel VARCHAR(50) NOT NULL UNIQUE
);

La contrainte UNIQUE garantit qu’aucun numéro de téléphone en double n’existe dans la colonne num_tel.
Liste des commandes MySQL

INSERT INTO Contact(num_tel) VALUES('0725480036');


 
Cela fonctionne comme prévu.

Exécutons maintenant une autre instruction qui insère deux lignes dans la table « Contact »:

INSERT INTO Contact(num_tel) VALUES('0725480036'), ('0788903471');

Cela retourne une erreur.
 

 
 
Comme indiqué dans le message d’erreur, le numéro de téléphone 0725480036 viole la contrainte UNIQUE. Donc le deuxième numéro n’est pas inséré dans la table « Contact ».
 

 
Si vous utilisez plutôt l’instruction INSERT IGNORE, le deuxième numéro sera inséré dans la table « Contact ».

INSERT IGNORE INTO Contact(num_tel) VALUES('0725480036'), ('0788903471');

 

 
Pour vérifier si le deuxième numéro est inséré dans la table « Contact », nous exécutions la requête suivante:
 

 
En conclusion, lorsque vous utilisez l’instruction INSERT IGNORE au lieu d’émettre une erreur, MySQL émet un avertissement en cas d’erreur.
Questions techniques sur MYSQL

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *