無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 12 SQL ステートメント構文 :: 12.1 データ定義ステートメント :: 12.1.19 RENAME TABLE 構文
« 12.1.18 RENAME DATABASE 構文

12.2 データ取り扱いステートメント »
Section Navigation      [Toggle]
  • 12.1 データ定義ステートメント
  • 12.1.1 ALTER DATABASE 構文
  • 12.1.2 ALTER TABLE 構文
  • 12.1.3 ALTER LOGFILE GROUP 構文
  • 12.1.4 ALTER TABLESPACE 構文
  • 12.1.5 ALTER SERVER 構文
  • 12.1.6 CREATE DATABASE 構文
  • 12.1.7 CREATE INDEX 構文
  • 12.1.8 CREATE TABLE 構文
  • 12.1.9 CREATE LOGFILE GROUP 構文
  • 12.1.10 CREATE TABLESPACE 構文
  • 12.1.11 CREATE SERVER 構文
  • 12.1.12 DROP DATABASE 構文
  • 12.1.13 DROP INDEX 構文
  • 12.1.14 DROP TABLE 構文
  • 12.1.15 DROP LOGFILE GROUP 構文
  • 12.1.16 DROP TABLESPACE 構文
  • 12.1.17 DROP SERVER 構文
  • 12.1.18 RENAME DATABASE 構文
  • 12.1.19 RENAME TABLE 構文

12.1.19. RENAME TABLE 構文

RENAME TABLE tbl_name TO new_tbl_name
    [, tbl_name2 TO new_tbl_name2] ...

このステートメントは1つ、または複数のテーブルのリネームをします。

リネームは自動的に行われますので、その他のスレッドはリネーム作業中はどのテーブルにもアクセスできません。例えば、もし既存テーブル old_table があるとしたら、同じ構成で中身が空の別のテーブル new_table を作成し、その後、次のように既存テーブルと空のテーブルを入れ替える事ができます。(backup_table は存在していないと仮定する):

CREATE TABLE new_table (...);
RENAME TABLE old_table TO backup_table, new_table TO old_table;

もしこのステートメントが複数のテーブルをリネームすると、残りの作業は左から右に行われます。もし2つのテーブル名の入れ替えをしたければ、このように行う事ができます。(tmp_table が存在しないと仮定する):

RENAME TABLE old_table TO tmp_table,
             new_table TO old_table,
             tmp_table TO new_table;

2つのデータベースが同じファイル システム上にある限り、テーブルを1つのデータベースから別のものに移動するのに RENAME TABLE を利用する事ができます。

RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

テーブルと関連し、RENAME TABLE を利用して別のデータベースに移動されたトリガがあると、ステートメントは Trigger in wrong schema というエラーになります。

RENAME TABLE はまた、別のデータベース内にビューをリネームしようとしなければ、ビューに対しても機能します。

リネームされたテーブルやビューに与えられた権限は、新しい名前に移動しません。それらは手動で変更しなければいけません。

RENAME を実行する時、ロックされたテーブルやアクティブなトランザクションを持つ事はできません。また、元テーブル上に ALTER と DROP 権限を、新しいテーブル上には CREATE と INSERT 権限を持つ必要があります。

もし MySQL が複合テーブルのリネームをしている最中にエラーが発生すると、全てを元に戻す為に全てのリネームされたテーブルにリバース リネームを行います。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.