我正在将记录从一个表复制到另一个表,并且有可能某些记录可能已经在第二个表中,我正在将记录复制到。
由于我正在复制许多行,我正在寻找一种方法来忽略来自mysql的所有记录已经存在的消息并继续执行mysql文件。
有没有办法可以抑制错误信息?。
答案 0 :(得分:4)
正如INSERT
Syntax所述:
INSERT
语句支持以下修饰符:[ deletia ]
- 如果使用
IGNORE
关键字,则执行INSERT
语句时发生的错误将被视为警告。例如,如果没有IGNORE
,则复制表中现有UNIQUE
索引或PRIMARY KEY
值的行会导致重复键错误,并且语句将中止。使用IGNORE
时,仍未插入行,但未发出错误。
答案 1 :(得分:0)
试试这个:
zcat db.sql.gz | sed -e 's/INSERT/INSERT IGNORE/' | mysql -u user -p dbname