MySQL Insert Ignore

Profile picture for user arilio666

This INSERT IGNORE is the concept of inserting a value into an existing table. When used normally, INSERT detects duplicate values where UNIQUE is assigned and throws an error abandoning the rest of the data to be inserted. In this, It throws a warning and performs the rest of the data insertion with the help of INSERT IGNORE.

Syntax

INSERT IGNORE INTO Table(ColumnNames)   
VALUES (Values to be inserted);

Example

Let us create a table.

CREATE TABLE insert_ignore_example (  
  ID int AUTO_INCREMENT PRIMARY KEY,  
  Name varchar(45) DEFAULT NULL,  
  Alias varchar(45) NOT NULL UNIQUE,  
  Status varchar(25) DEFAULT NULL  
);  

Since it is UNIQUE assigned in the Alias column no duplicate values are allowed.

INSERT INTO insert_ignore_example(ID, Name, Alias, Status)   
VALUES (1,'Peter', 'Spiderman', 'Alive'),   
(2, 'Strange', 'Doctor Strange', 'Alive'),   
(3, 'Norman', 'Green Goblin', 'Deceased'); 

3 row(s) affected Records: 3  Duplicates: 0  Warnings: 0

INSERT INTO insert_ignore_example(ID, Name, Alias, Status)   
VALUES (4,'May', 'Aunt', 'Deceased'),   
(5, 'Harry', 'Green Goblin', 'Alive');

Here when we try to insert this same Alias name for the table it throws warning ERROR 1062 (23000): Duplicate entry 'Green Goblin' for key 'insert_ignore_example.Alias' when IGNORE is used and updates the rest of the data with ease.

INSERT IGNORE INTO insert_ignore_example(ID, Name, Alias, Status)   
VALUES (4,'May', 'Aunt', 'Deceased'),   
(5, 'Harry', 'Green Goblin', 'Alive');

mysql insert ignore

Leaving aside the error instead of stopping the process rest of the other data gets their job done of insertion.

Tags