2010-12-03 15 views
21

Avec un de mes tables MySQL, j'ai laissé tomber la colonne col1 avant le laisse tomber d'un index unique (COL0, col1, col2, col3) qui le contient.si je laisse tomber une colonne MySQL sans laisser tomber son index en premier?

est-il pris automatiquement en charge par MySQL? Il semble que l'index unique qui était auparavant (COL0, col1, col2, col3) a été modifiée automatiquement (COL0, col2, col3) après avoir supprimé la colonne col1.

Est-ce que ça va être un problème ou dois-je laisser tomber l'index unique et recréer comme (COL0, col2, col3)?

Répondre

42

Selon le l'MySQL 5.1 Reference Manual:

Si des colonnes sont lâchés d'une table, les colonnes sont également retirées de tout indice dont ils font partie. Si toutes les colonnes qui composent un indice sont a chuté, l'indice est tombé aussi. Si vous utilisez CHANGE ou MODIFY pour réduire une colonne pour laquelle un index existe sur la colonne et la colonne résultante la longueur est inférieure à la longueur d'index, MySQL raccourcit l'indice automatiquement.