2013-07-15 88 views
1

我正在將記錄從一個表複製到另一個表,並且有可能某些記錄可能已經在第二個表中,我正在將記錄複製到。執行sql文件時忽略mysql錯誤消息

由於有很多行我正在複製,我正在尋找一種方法來忽略所有記錄已經存在的消息從MySQL並繼續執行mysql文件。

有沒有一種方法可以抑制錯誤信息?

+0

'INSERT IGNORE ...' – eggyal

+0

我不想插入重複記錄。 –

回答

4

由於INSERT Syntax下記載:

INSERT語句支持以下修飾符:

[ deletia ]
  • 如果使用IGNORE關鍵字,在執行INSERT語句被當成出現的錯誤相反的警告。例如,如果沒有IGNORE,表中重複表中現有的UNIQUE索引或PRIMARY KEY值的行會導致重複鍵錯誤,並且語句會中止。使用IGNORE,該行仍未插入,但未發出錯誤。
+0

另請參閱[「INSERT IGNORE」與「INSERT ... ON DUPLICATE KEY UPDATE」](http://stackoverflow.com/a/548570) – eggyal

0

試試這個:

zcat db.sql.gz | sed -e 's/INSERT/INSERT IGNORE/' | mysql -u user -p dbname 
相關問題