如果我删除MySQL列而不先删除其索引会发生什么?

时间:2010-12-03 02:18:23

标签: mysql indexing

使用我的一个MySQL表,我删除了列 col1 ,然后从包含它的唯一索引(col0,col1,col2,col3)中删除它。

它是由MySQL自动处理的吗?在删除列col1后,以前的唯一索引(col0,col1,col2,col3)似乎自动更改为(col0,col2,col3)。

是否会出现问题,或者我必须删除唯一索引并将其重新创建为(col0,col2,col3)?

1 个答案:

答案 0 :(得分:48)

根据MySQL 5.1 Reference Manual

  

如果从表中删除列,   列也从任何列中删除   它们所属的指数。我摔倒   构成索引的列是   丢弃了,索引也被删除了。   如果使用CHANGE或MODIFY缩短   存在索引的列   列和结果列   长度小于索引长度,   MySQL缩短了索引   自动。