MySQLでインデックスや外部キー制約をリネームする
テーブルを置き換える場合などにはテーブル名だけでなく、インデックスや外部キー制約も名前変更する必要があります。MySQL5.7系だとRENAME INDEXができるのですが、5.6系だと残念ながら削除&追加するしかないので、その方法をまとめておきます。
new_
というプレフィックスのついたインデックスや外部キー制約からnew_
を外す場合の例を紹介します。
インデックスの追加
ADD KEY
またはADD UNIQUE KEY
で追加します。
インデックスの削除
DROP KEY
で削除します。
外部キー制約の追加
ADD CONSTRAINT * FOREIGN KEY(*) REFERENCES *
で追加します。
外部キー制約の削除
DROP FOREIGN KEY
で削除します。
まとめてみると
それぞれの追加&削除をまとめて実行するならこんな感じになります。
以上、MySQLでのインデックス&外部キー制約のリネーム方法でした。