MySQL:带有DROP INDEX的ALTER IGNORE TABLE

时间:2011-03-10 12:13:48

标签: mysql alter-table mysql-error-1091

我有很多数据库,每个数据库都有表names。在某些情况下,我有名为name1的UNIQUE KEY,而在其他情况下,相同的UNIQUE KEY名为name2。我想标准这个名称,所以我准备了3个查询在每个数据库上运行:

ALTER IGNORE TABLE `names`
    DROP INDEX `name1`;
ALTER IGNORE TABLE `names`
    DROP INDEX `name2`;
ALTER TABLE `names`
    ADD UNIQUE `new_name` (`name`, `surname`);

但我收到了错误:

SQL Error (1091): Can't DROP 'name1'; check that column/key exists

如何在每个数据库上运行一组查询?

1 个答案:

答案 0 :(得分:3)

如果从命令行执行SQL脚本文件,则可以尝试忽略错误:

mysql -f -u username -p password -e 'source script.sql'

修改

感谢Ike,正确的做法是:

mysql -f -u username -p password < script.sql