我正在运行一个'bash for'脚本来更新mysql中的一些logging,如下所示:
for i in `cat yahoo.txt`; do mysql $DB --batch -fe "update users set email=concat(left(email, instr(email, '@')), 'yahoo.com') where email like '%@$i';" ; done
但即使使用–force,更新在第一个错误后停止:
ERROR 1062 (23000) at line 1: Duplicate entry '[email protected]' for key 3
无论如何,我可以强迫它继续?
尝试更新更新以更新忽略
http://dev.mysql.com/doc/refman/5.0/en/update.html :
使用IGNORE关键字,即使在更新期间发生错误,update语句也不会中止。 发生重复键冲突的行不会更新。 将列更新为导致数据转换错误的值的行更改为最接近的有效值。