私は2009年にこの質問に答えました。当時、MySQLにはインデックスの名前を変更する構文がありませんでした。
それ以来、MySQL5.7はALTER TABLE RENAME INDEXを導入しました 構文。
https://dev.mysql.com/doc/refman /5.7/en/alter-table.html 一部は言う:
MySQLの以前のバージョン(例: 5.6以前では、 ALTER TABLE
インデックス(または同義語であるキー)の名前を変更します。
唯一の解決策は、ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...)でした。 。
ALTER INDEXはありません MySQLのコマンド。 DROP INDEXのみが可能です。
次に、 CREATE INDEX
新しい名前で。
上記の更新について:おそらく、ドキュメントは十分に正確ではありません。とにかく、インデックスの名前を変更するSQL構文はありません。
インデックスは、データから再構築できるデータ構造です(実際、OPTIMIZE TABLEを使用してインデックスを定期的に再構築することをお勧めします。 )。少し時間がかかりますが、当たり前の操作です。インデックスのデータ構造はテーブルデータとは別のものであるため、ドキュメントに記載されているように、インデックスを追加または削除する必要はありません。
.frmについて ファイル、MySQLは.frmの編集をサポートしていません ファイル。なんらかの理由でやらない。テーブルが破損して使用できなくなることが100%保証されています。