Saya menjawab pertanyaan ini pada tahun 2009. Saat itu tidak ada sintaks di MySQL untuk mengganti nama indeks.
Sejak itu, MySQL 5.7 memperkenalkan ALTER TABLE RENAME INDEX
sintaksis.
http://dev.mysql.com/doc/refman /5.7/en/alter-table.html mengatakan sebagian:
Versi MySQL sebelumnya, mis. 5.6 dan sebelumnya, tidak mendukung sintaks di ALTER TABLE
untuk mengganti nama indeks (atau kunci, yang merupakan sinonim).
Satu-satunya solusi adalah ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...)
.
Tidak ada ALTER INDEX
perintah di MySQL. Anda hanya dapat DROP INDEX
lalu CREATE INDEX
dengan nama baru.
Mengenai pembaruan Anda di atas:mungkin dokumentasinya tidak cukup tepat. Terlepas dari itu, tidak ada sintaks SQL untuk mengganti nama indeks.
Indeks adalah struktur data yang dapat dibangun kembali dari data (sebenarnya dianjurkan untuk membangun kembali indeks secara berkala dengan OPTIMIZE TABLE
). Dibutuhkan beberapa waktu, tetapi ini adalah operasi yang biasa. Struktur data indeks terpisah dari data tabel, jadi menambahkan atau menghapus indeks tidak perlu menyentuh data tabel, seperti yang tertulis dalam dokumentasi.
Mengenai .frm
file, MySQL tidak mendukung pengeditan .frm
mengajukan. Saya tidak akan melakukannya untuk alasan apapun. Anda dijamin 100% merusak tabel Anda dan membuatnya tidak dapat digunakan.