Ik beantwoordde deze vraag in 2009. Destijds was er geen syntaxis in MySQL om een index te hernoemen.
Sindsdien introduceerde MySQL 5.7 een ALTER TABLE RENAME INDEX
syntaxis.
http://dev.mysql.com/doc/refman /5.7/nl/alter-table.html zegt gedeeltelijk:
Eerdere versies van MySQL, b.v. 5.6 en eerder, ondersteunen geen syntaxis in ALTER TABLE
om een index (of sleutel, wat een synoniem is) te hernoemen.
De enige oplossing was om ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...)
.
Er is geen ALTER INDEX
commando in MySQL. U kunt alleen DROP INDEX
en dan CREATE INDEX
met de nieuwe naam.
Wat betreft je update hierboven:misschien is de documentatie niet precies genoeg. Hoe dan ook, er is geen SQL-syntaxis om een index te hernoemen.
Een index is een gegevensstructuur die kan worden herbouwd op basis van de gegevens (het wordt zelfs aanbevolen om indexen periodiek opnieuw op te bouwen met OPTIMIZE TABLE
). Het kost wat tijd, maar het is een alledaagse operatie. De gegevensstructuren van indexen staan los van tabelgegevens, dus het toevoegen of verwijderen van een index hoeft de tabelgegevens niet aan te raken, zoals de documentatie zegt.
Over de .frm
bestand, ondersteunt MySQL het bewerken van de .frm
. niet het dossier. Ik zou het om welke reden dan ook niet doen. U bent 100% gegarandeerd dat u uw tafel corrumpeert en onbruikbaar maakt.