1. テーブル構造をコピーして新しいテーブルを作成する(CREATE TABLE … LIKE)の概要と基本概念
1. テーブル構造をコピーして新しいテーブルを作成する(CREATE TABLE … LIKE)の概要と基本概念
皆さん、こんにちは!データベース管理者(DBA)の皆さん、日々お疲れ様です。
新しいテーブルを作成する際、既存のテーブルと似た構造のテーブルが欲しい、あるいはテスト用に既存テーブルの構造だけを複製したい、といった場面に遭遇することはよくありますよね。そんな時、カラム名やデータ型、制約などをイチから定義し直すのは手間がかかりますし、手作業によるミスも起こりがちです。
そこで非常に便利なのが、今回ご紹介する`CREATE TABLE … LIKE`構文です。
このSQL文は、その名の通り、既存のテーブルの「構造」だけをそっくりそのままコピーして、新しい空のテーブルを作成するためのものです。データは一切コピーされません。まるで、設計図を複製して、新しい空っぽの箱を作るようなイメージですです。
コピーされるのは、主に以下の要素です。
* カラム名
* データ型
* NULL許容設定
* デフォルト値
* `PRIMARY KEY`(主キー)などのカラムレベルの制約
これにより、手作業での定義ミスを防ぎ、一貫性のあるテーブル構造を素早く作成でき、開発効率がぐっと向上します。
重要な注意点として、データ自体はもちろんコピーされませんし、インデックス、`FOREIGN KEY`(外部キー)制約、`VIEW`、`TRIGGER`といったテーブルに関連する他のデータベースオブジェクトは、この構文ではコピーされません。あくまで「骨格」だけをコピーすると理解しておきましょう。
基本的な構文は以下の通りです。
CREATE TABLE 新しいテーブル名 LIKE 元のテーブル名;
例えば、`users`という既存のテーブルの構造をコピーして`users_new`という新しいテーブルを作成する場合は、次のように実行します。
CREATE TABLE users_new LIKE users;
この構文を使いこなせば、テーブル定義の作業が大幅に楽になりますので、ぜひ覚えて活用してくださいね。次回は、より具体的な使用例や注意点について詳しく見ていきましょう。

コメント