REPLACE INTO Instead of INSERT INTO – MySQL


There are many occasions where you need to INSERT a record into a MySQL database table, but the record already exists.

INSERT INTO queue_domains (domain) VALUES('statvoo.com')

This will result in a Duplicate entry 'statvoo.com' for key 'domain' error

A nice and simple way to resolve this is to use REPLACE INTO instead.

This will look to see if the item already exists and will simply replace it.

This is faster than doing a SELECT followed by an INSERT.

If you have an auto_increment column set up, then it will delete the previous record and recreate it with a new auto_increment_id.

How to write the new syntax

Just replace the INSERT INTO with REPLACE INTO and you’re done.

So the above failing SQL statement will become:

REPLACE INTO queue_domains (domain) VALUES('statvoo.com')