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

dat*_*.io 29 mysql indexing

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

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

它是一个问题还是我必须删除唯一索引并重新创建它(col0,col2,col3)?

Sam*_*les 52

根据MySQL 5.1参考手册:

如果从表中删除列,则列也将从它们所属的任何索引中删除.如果删除构成索引的所有列,则也会删除索引.如果使用改变或修改缩短其上的列上存在的索引的列中,并且将所得的列长度小于索引长度,MySQL的自动缩短的索引.