Jeg besvarede dette spørgsmål i 2009. På det tidspunkt var der ingen syntaks i MySQL til at omdøbe et indeks.
Siden da har MySQL 5.7 introduceret et ALTER TABLE RENAME INDEX
syntaks.
http://dev.mysql.com/doc/refman /5.7/da/alter-table.html siger delvist:
Tidligere versioner af MySQL, f.eks. 5.6 og tidligere, understøtter ingen syntaks i ALTER TABLE
at omdøbe et indeks (eller nøgle, som er et synonym).
Den eneste løsning var at ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...)
.
Der er ingen ALTER INDEX
kommando i MySQL. Du kan kun DROP INDEX
og derefter CREATE INDEX
med det nye navn.
Med hensyn til din opdatering ovenfor:måske er dokumentationen ikke præcis nok. Uanset hvad er der ingen SQL-syntaks til at omdøbe et indeks.
Et indeks er en datastruktur, der kan genopbygges fra dataene (det anbefales faktisk at genopbygge indekser med jævne mellemrum med OPTIMIZE TABLE
). Det tager noget tid, men det er en almindelig operation. Indeksdatastrukturer er adskilte fra tabeldata, så tilføjelse eller sletning af et indeks skulle ikke være nødvendigt at røre ved tabeldataene, som det står i dokumentationen.
Med hensyn til .frm
fil, understøtter MySQL ikke redigering af .frm
fil. Jeg ville ikke gøre det af nogen grund. Du er 100 % garanteret at ødelægge dit bord og gøre det ubrugeligt.