MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのLIKE句を使って通常のテーブルと同じ構造の一時テーブルを作成する方法

MySQLでは、CREATE TEMPORARY TABLE ... LIKE構文を使うことで、既存の通常テーブルとまったく同じ構造(カラム定義、主キー、AUTO_INCREMENT設定など)を持つ一時テーブルを簡単に作成できます。この記事では、その具体的な手順をサンプルコードとともに解説します。

1. 元となるテーブルを作成する

まず、CREATE TABLE文でサンプル用のテーブルを作成します。

mysql> create table DemoTable1
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name varchar(100)
);
Query OK, 0 rows affected (0.59 sec)

ここでは、自動採番されるIdカラム(主キー)と、Nameカラムを持つテーブル「DemoTable1」を作成しました。

2. テーブルにレコードを挿入する

次に、INSERT文を使ってテーブルにいくつかのレコードを追加します。

mysql> insert into DemoTable1(Name) values('Chris');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1(Name) values('Robert');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1(Name) values('Mike');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1(Name) values('Sam');
Query OK, 1 row affected (0.07 sec)

3. 挿入したレコードを確認する

SELECT文でテーブル内のすべてのレコードを表示して確認しましょう。

mysql> select *from DemoTable1;

実行すると、次のような結果が出力されます。

+----+--------+
| Id | Name   |
+----+--------+
|  1 | Chris  |
|  2 | Robert |
|  3 | Mike   |
|  4 | Sam    |
+----+--------+
4 rows in set (0.00 sec)

4. LIKE句を使って一時テーブルを作成する

ここがこの記事のポイントです。次のクエリを実行すると、通常テーブル「DemoTable1」と同じ構造を持つ一時テーブル「DemoTable2」を作成できます。

mysql> create temporary table DemoTable2 like DemoTable1;
Query OK, 0 rows affected (0.04 sec)

LIKE句を使用することで、元テーブルのカラム定義やインデックス情報がそのまま引き継がれます。なお、一時テーブルにはデータはコピーされず、構造のみが複製される点に注意してください。

5. 一時テーブルの構造を確認する

DESCコマンドで作成した一時テーブルの構造を確認してみましょう。

mysql> desc DemoTable2;

実行結果は以下のとおりです。

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| Id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(100) | YES  |     | NULL    | NULL           |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.04 sec)

このように、元テーブルと同じId(AUTO_INCREMENT付き主キー)とNameカラムが定義された一時テーブルが作成されていることがわかります。

まとめ

CREATE TEMPORARY TABLE テーブル名 LIKE 元テーブル名;と記述するだけで、既存テーブルと同一構造の一時テーブルを作成できます。一時テーブルはセッションが終了すると自動的に削除されるため、一時的なデータ処理やテスト用途に非常に便利です。データまでコピーしたい場合は、INSERT INTO ... SELECTを組み合わせて使用するとよいでしょう。

  1. JavaのPreparedStatementを使ってMySQLテーブルを更新する方法

    JavaからMySQLのテーブルを更新するには、PreparedStatementを使用するのが一般的で安全な方法です。PreparedStatementを使うことで、SQLインジェクションを防ぎつつ、パラメータを動的に設定できます。この記事では、実際にテーブルを作成し、Javaプログラムからレコードを更新するまでの一連の手順を解説します。1. テーブルの作成まず、MySQLで更新用のテーブルを作成しましょう。mysql> create table DemoTable( Id int, FirstName varchar(40) ); Query OK, 0 rows a

  2. MySQLでDEFAULTキーワードを使ってデフォルト値を設定したテーブルを作成する方法

    MySQLでは、テーブル作成時にカラムのデータ型の後にDEFAULTキーワードを指定することで、そのカラムにデフォルト値を設定できます。INSERT文で値が指定されなかった場合、自動的にこのデフォルト値が適用されます。テーブルの作成例それでは、実際にデフォルト値を持つテーブルを作成してみましょう。mysql> create table demo33 -> ( -> id int not null auto_increment primary key, -> name varchar(20) not null, -> start_date date default(