1

I am copying records from one table to another and there is a chance that some records may already be in the second table i am copying the records to.

Since there are lots of rows i am copying,i am looking a way to ignore all the record already exists messages from mysql and continue executing the mysql file.

Is there a way i can suppress the error messages?.

2 Answers2

4

As documented under INSERT Syntax:

The INSERT statement supports the following modifiers:

[ deletia ]
  • If you use the IGNORE keyword, errors that occur while executing the INSERT statement are treated as warnings instead. For example, without IGNORE, a row that duplicates an existing UNIQUE index or PRIMARY KEY value in the table causes a duplicate-key error and the statement is aborted. With IGNORE, the row still is not inserted, but no error is issued.
eggyal
  • 122,705
  • 18
  • 212
  • 237
  • See also [“INSERT IGNORE” vs “INSERT … ON DUPLICATE KEY UPDATE”](http://stackoverflow.com/a/548570) – eggyal Jul 15 '13 at 14:51
0

Try this:

zcat db.sql.gz | sed -e 's/INSERT/INSERT IGNORE/' | mysql -u user -p dbname
develCuy
  • 576
  • 5
  • 14