質問: データベース名を変更するにあたってこのキータを発見しました。 MySQLでdumpせずに "RENAME DATABASE" を実現する 記事冒頭には「その危険すぎる機能ゆえに、存在を消された幻のコマンド」と書かれていますが、このコマンドはなぜ危険なのですか? RENAME DATABASEが危険なら、この記事に書いてある「データベースからデータをエクスポートして新しいデータベースにインポートする方法」も「RENAME TABLEを使う方法」も危険性があるということになると思いますがどのような危険性がありますか? RENAME TABLEが残っているのにRENAME DATABASEだけ危険で消されたというのも納得がいきません。 ひととおり調べてみましたが、なんで危険なのか書いてあるサイトを見つけられなかったのでご教示いただけましたら幸いです。 よろしくお願いします。
回答: 回答にあらず、推測です。 以下には古いバージョンのドキュメントは削除済みのようで `rename database` に関しては検索してもヒットしませんね。 古いマニュアルをアーカイブで探したところ (以下オレオレ翻訳) > > ただし、このステートメントの使用によってデータベースの内容が失われる可能性があったために削除されました。 > > > とあります。何となく妄想するに、単純に `rename database` に仕様上の不備があったとか、ソフト実装にバグがあっただけのようにしか読めないっす。だから「使うな」「削除しました」ってこと。 で、不備のない安全な別の手段を文章化したのでそっち使ってくれってことではないかと。だから `rename table` は安全と考えてよさそうです。 # MySQL の古いソースがウチに保存されてたはず、と探したら 5.1.51 でした。残念。 @metropolis さんのコメントリンク先によればやはり "a couple of bugs" 複数個のバグがあるからとのことです。それと `rename database` はそもそも MySQL 5.0 から 5.1 へのデータ移行を主目的に作られたコマンドなので削除したとのこと。( 5.1 が主流になっている 2007 年時点ではもう不要との判断と思われます)