logo

MySQL テーブルの名前変更

テーブル名が意味を持たない場合があるため、テーブルの名前を変更するか、名前を変更する必要があります。 MySQL は、現在のデータベース内の 1 つ以上のテーブルの名前を変更できる便利な構文を提供します。

構文

テーブルの名前を変更するために使用される構文は次のとおりです。

 mysql> RENAME old_table TO new_table; 

ここで確認する必要があるのは、 新しいテーブル名 存在してはなりません、そして 古いテーブル名 データベースに存在する必要があります。それ以外の場合は、エラー メッセージがスローされます。これは、このステートメントを実行する前に、テーブルがロックされていないこと、およびアクティブなトランザクションがないことを確認するためです。

注: RENAME TABLE ステートメントを使用する場合は、既存のテーブルに対する ALTER 権限と DROP TABLE 権限が必要です。また、このステートメントは一時テーブルの名前を変更できません。

MySQL も使用できます テーブルの名前を変更 以下に示すように、1 つのステートメントで複数のテーブル名を変更するステートメントを使用します。

 RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3; 

から MySQL 8.0.13 バージョンを変更すると、LOCK ステートメントでロックされた古いテーブル名を変更でき、WRITE LOCK 句も使用できます。たとえば、有効なステートメントは次のとおりです。

 mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2; 

次のステートメントは許可されません。

 mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2; 

MySQL 8.0.13 より前のバージョンでは、LOCK TABLE ステートメントでロックされたテーブル名を変更できません。

MySQL は、あるデータベースから別のデータベースにテーブルを移動するために RENAME TABLE ステートメントも使用します。これを以下に示します。

 mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name; 

MySQL RENAME TABLE の例

さまざまな例を通して、MySQL で RENAME TABLE ステートメントがどのように機能するかを理解しましょう。という名前のテーブルがあるとします。 従業員 何らかの理由により、それを という名前のテーブルに変更する必要があります。 お客様

テーブル名: 従業員

MySQL テーブルの名前変更

次に、次の構文を実行してテーブル名を変更します。

 mysql> RENAME employee TO customer; 

出力

アルファベット順

「employee」という名前のテーブルが新しいテーブル名「customer」に変更されることがわかります。

MySQL テーブルの名前変更

上記の出力では、RENAME TABLE ステートメントの実行後にテーブル名employee を使用すると、エラー メッセージがスローされることがわかります。

複数のテーブルの名前を変更する方法

MySQL の RENAME TABLE ステートメントを使用すると、1 つのステートメント内で複数のテーブル名を変更することもできます。以下のステートメントを参照してください。

私たちのデータベースがあるとします。 私の従業員データベース ' 次のテーブルがあります:

MySQL テーブルの名前変更

テーブル名「customer」を「employee」に、テーブル名「shirts」を「garment」に変更する場合は、次のステートメントを実行します。

 mysql> RENAME TABLE customer TO employee, shirts TO garments; 

出力

テーブル名「customer」が「employee」に、テーブル名「shirts」が「衣服」に正常に名前変更されたことがわかります。

MySQL テーブルの名前変更

ALTER ステートメントを使用してテーブルの名前を変更する

ALTER TABLE ステートメントを使用して、現在のデータベース内の既存のテーブルの名前を変更することもできます。 ALTER TABLE ステートメントの構文は次のとおりです。

 ALTER TABLE old_table_name RENAME TO new_table_name; 

既存のテーブル名の衣服を新しいテーブル名のシャツに変更する次のクエリを参照してください。

中央のCSSボタン
 mysql> ALTER TABLE garments RENAME TO shirts: 

出力

ここでは、テーブル名の衣服がテーブル名のシャツに名前変更されたことがわかります。

MySQL テーブルの名前変更

一時テーブルの名前を変更する方法

一時テーブルを使用すると、現在のセッションでのみ表示およびアクセスできる一時データを保持できます。したがって、最初に、次のステートメントを使用して一時テーブルを作成する必要があります。

 mysql> CREATE TEMPORARY TABLE Students( name VARCHAR(40) NOT NULL, total_marks DECIMAL(12,2) NOT NULL DEFAULT 0.00, total_subjects INT UNSIGNED NOT NULL DEFAULT 0); 

次に、このテーブルに値を挿入します。

 mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2); 

次に、show table コマンドを実行して一時テーブルを確認します。

 mysql> SELECT * FROM Students; 

ここで、次のコマンドを実行して、一時テーブルの名前を変更します。

 mysql> RENAME TABLE Students TO student_info; 

以下に示すようなエラー メッセージがスローされます。

MySQL テーブルの名前変更

したがって、MySQL では、ALTER table ステートメントで一時テーブルの名前を変更できます。

 mysql> ALTER TABLE Students RENAME TO student_info; 

出力

MySQL テーブルの名前変更