首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中止alter后出现重复的列名错误

问中止alter后出现重复的列名错误
EN

Stack Overflow用户
提问于 2011-03-02 23:30:36
回答 2查看 2K关注 0票数 2

我创建了一个Rails数据库迁移,以将一个新列添加到我的数据库中的一个表中,但是当我注意到它花费的时间比预期的长很多(15分钟以上)之后,我手动地杀死了运行迁移的ruby进程。然后我意识到,由于表中的数据量,运行时并不是很平常,所以我再次启动了它。现在我得到了错误:

代码语言:javascript
复制
Mysql::Error: Duplicate column name 'new_column': ALTER TABLE `table_name` ADD `new_column` varchar(255)

但是,当我手动进入MySQL时,desc table_name显示该列不存在,并且尝试手动删除它(alter table table_name drop new_column)告诉我:

代码语言:javascript
复制
ERROR 1091 (42000): Can't DROP 'new_column'; check that column/key exists

看起来,中止初始的添加进程会导致事情进入不一致的状态。我该怎么做才能解决这个问题?

编辑:我尝试手动添加(从上面的错误复制DDL ),然后在MySQL提示符下删除列,两者都正常工作,但是rake db:migrate继续给出上面的错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-03 01:31:34

看起来,我无意中针对错误的数据库运行了手动MySQL命令(我没有切换到数据库的“开发”版本)。使用正确的数据库,我能够手动删除违规列。

票数 0
EN

Stack Overflow用户

发布于 2011-03-03 00:14:52

你可以试试这个,走这条路

代码语言:javascript
复制
/var/lib/mysql

并对数据库进行备份(作为文件夹)

然后进入数据库文件夹并尝试删除表文件。

这也许能行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5174854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档