sql >> データベース >  >> RDS >> Mysql

MySQLでインデックスの名前を変更するにはどうすればよいですか

    私は2009年にこの質問に答えました。当時、MySQLにはインデックスの名前を変更する構文がありませんでした。

    それ以来、MySQL5.7はALTER TABLE RENAME INDEXを導入しました 構文。

    http://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%保証されています。



    1. 高度なSQL:T-SQL挿入ステートメントのバリエーションとさまざまなユースケース

    2. SQLServerの値のリストから選択するにはどうすればよいですか

    3. PreparedStatementを使用して挿入します。 IDを自動インクリメントするにはどうすればよいですか?

    4. Oracleの日付から月の名前を取得する