2010-12-03 4 views
21

Mit einer meiner MySQL-Tabellen habe ich Spalte col1 fallen gelassen, bevor ich es aus einem eindeutigen Index (col0, col1, col2, col3), die es enthält, ablegen.Was passiert, wenn ich eine MySQL-Spalte lösche, ohne zuerst den Index zu löschen?

Wird automatisch von MySQL gewartet? Es scheint, dass der eindeutige Index, der zuvor (col0, col1, col2, col3) war, automatisch in (col0, col2, col3) geändert wurde, nachdem ich die Spalte col1 gelöscht habe.

Wird es ein Problem oder muss ich den eindeutigen Index löschen und neu erstellen als (col0, col2, col3)?

Antwort

42

Nach der der MySQL 5.1 Reference Manual:

Wenn Spalten aus einer Tabelle abgelegt werden, die Spalten auch von jedem Index entfernt werden, von denen sie ein Teil sind. Wenn alle Spalten, die einen Index bilden, gelöscht werden, wird der Index ebenfalls gelöscht. Wenn Sie CHANGE verwenden oder MODIFY eine Spalte zu verkürzen, für die ein Index, der die Spalte auf vorhanden ist, und die sich ergebende Spalte Länge kleiner als der Indexlänge verkürzt MySQL den Index automatisch.

Verwandte Themen