我有很多数据库,每个数据库都有表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
如何在每个数据库上运行一组查询?
答案 0 :(得分:3)
如果从命令行执行SQL脚本文件,则可以尝试忽略错误:
mysql -f -u username -p password -e 'source script.sql'
修改
感谢Ike,正确的做法是:
mysql -f -u username -p password < script.sql