【问题标题】:MySQL: ALTER IGNORE TABLE with DROP INDEXMySQL:使用 DROP INDEX 更改忽略表
【发布时间】:2011-03-10 12:13:48
【问题描述】:

我有很多数据库,每个数据库都有names 表。在某些情况下,我有一个名为name1 的唯一键,而在另一些情况下,相同的唯一键名为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

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

【问题讨论】:

  • 那么问题是什么?如何忽略错误,或者如何在每个数据库中运行查询?

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


【解决方案1】:

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

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

编辑

感谢艾克,正确的做法是:

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

【讨论】:

  • 实际上,如果出现多个错误,这将不起作用。它将在第一个错误后中止。忽略 script.sql 中的错误的正确方法是:mysql -f -u username -p password &lt; script.sql
猜你喜欢
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 2017-12-05
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 2013-04-19
相关资源
最近更新 更多