MySQL - 可以用Ctrl-C中止查询会损害表吗?

Dyl*_*lan 3 mysql database terminal

我的一些查询花了太长时间,包括一些alter table查询,所以我按Ctrl-c中止它们并继续处理其他问题.

我流产的是alter table labs modify ID int(11) first.

现在非常简单的查询就像alter table labs drop column ID是永远.我已经等了25分钟了.这里数以百万计的记录,但我已经运行类似的alter table查询在同一个表只需要几秒钟.

中止查询是否会损害查询所在的列?如果是这样,我该如何从问题中恢复?


更新:我正在修改一个主键列.这可能与疯狂的长时间运行有关吗?

gr1*_*e4r 7

如果交易没有完成,没有.MySQL ALTER TABLE通过创建一个新表然后更新对旧表的引用来完成.如果中断原始ALTER TABLE查询,则不应更改原始表.

来源.

  • 哦,如果列是'PRIMARY KEY`那么我会怀疑`ALTER TABLE`会有一些麻烦,因为不再有索引来帮助重建表.它会陷入表扫描或排序,这是相当痛苦的. (3认同)