重命名表tbl_name来new_tbl_name(,tbl_name2来new_tbl_name2)……
このステトメントは,1ブルの名前を変更します。
名前変更の操作は原子的に実行されます。まり,名前の変更が実行されている間,ほかのセッションはどのテ,ブルにもアクセスできません。たとえば,既存のテブルold_table
が存在する場合は,次のように,同じ構造を持っているが空である別のテ,ブルnew_table
を作成してから,既存のテブルをその空のテブルに置き換えることができます(backup_table
はまだ存在していないと仮定します)。
创建表new_table(…);重命名表old_table为backup_table, new_table为old_table
このステトメントで複数のテブルの名前を変更する場合,名前の変更操作は左から右に実行されます。2 .のテブル名をスワップする場合は,次のように実行できます(tmp_table
はまだ存在していないと仮定します)。
重命名表old_table为tmp_table, new_table为old_table, tmp_table为new_table
2 .のデタベスが同じファルシステム上に存在するかぎり,重命名表
を使用して,あるデタベ。
重命名表current_db.tbl_name来other_db.tbl_name;
重命名表
を使用して別のデータベースに移動されたテーブルに関連付けられたトリガーが存在する場合は,ステートメントがエラー在错误的模式中触发で失敗します。
ビュの名前を変更して別のデタベスに移動しようとしないかぎり,重命名表
はビュに対しても機能します。
名前変更されたテブルまたはビュ専用に付与された権限は,どれも新しい名前には移行されません。それらは,手動で変更する必要があります。
重命名
を実行する場合は,ロックされたテブルやアクティブなトランザクションが存在していてはいけません。また,元のテブルに対する改变
および下降
権限と,新しいテブルに対する创建
および插入
権限も必要です。
複数テーブルの名前変更で何らかのエラーが発生した場合,MySQLはすべてをその元の状態に戻すために,名前変更されたすべてのテーブルに対して逆方向の名前変更を実行します。
重命名
を使用して临时
テブルの名前を変更することはできません。ただし,代わりにALTER TABLE
を使用できます。
mysql>修改表名称
この名前変更操作によってテーブルが別のファイルシステム上にあるデータベースに移動される場合,結果の成功はプラットフォーム固有であり,テーブルファイルを移動するために使用されるベースとなるオペレーティングシステムコールに依存します。