2010-12-03 22 views
21

使用我的MySQL表中的一个,在删除包含它的唯一索引(col0,col1,col2,col3)之前,我删除了列col1如果我先删除一个MySQL列而不删除它的索引,会发生什么?

它被MySQL自动照顾吗?在删除列col1后,似乎以前的唯一索引(col0,col1,col2,col3)会自动更改为(col0,col2,col3)。

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

回答

42

根据该MySQL 5.1 Reference Manual

如果列从表中删除, 的列也从任何 指数,它们是一个移除。如果构成索引的所有 列都是 ,那么该索引也会被丢弃。 如果使用改变或修改,以缩短 为其上 存在列的索引的列,并且将所得柱 长度小于索引长度, MySQL的缩短了索引 自动。

相关问题