SQLでテーブルのコピーを作成する方法—CREATE TABLE AS SELECT
作成日:2009.12.14
SQLを使用して、既存のテーブルから新しいテーブルをコピーする方法を紹介します。CREATE TABLE AS SELECT を使って、テーブルの構造やデータを簡単にコピーできます。また、必要に応じてインデックスを再作成する方法や、データなしで構造だけコピーする方法も解説します。
error この記事は最終更新日から16年以上が経過しています。
create文の中で select文を実行することで、特定のテーブルのコピーを作成することができます。
create table new_table as select * from old_table;
これで、「old_table」と同内容の「new_table」が作成できます。
ただし、インデックス等は別途作成する必要があります。
テーブルの構造だけをコピーして、中身のデータはいらない、という場合は、select文の where句で、ありえない条件を設定すればOK。
例えば、「user_id」というレコードが必ず1以上の数値であるテーブル「old_table」の構造だけコピーしたければ、
create table new_table as
select * from old_table where user_id < 1;
という感じになります。
奈良市を拠点に、27年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。
これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。
【制作会社・企業様向けサポート】
Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。
ぜひ、プロフィールやWeb制作会社様向け業務案内、一般企業様向け業務案内もご覧くださいね。
MySQLのDATE_FORMATとTIME_TO_SEC:日時の表示と時間の数値化
2026.10.13
MySQLのDATE_FORMATで日時の表示を整える方法と、TIME_TO_SECで時間を秒数へ変換する方法を解説します。入力と結果を比較しながら、月と分の書式指定、NULL、負の時間、24時間を超える時間の扱いも紹介します。
MySQLのCASE式入門:条件に応じてSELECTの出力を切り替える
2026.10.12
MySQLのCASE式を使い、条件に応じてSELECTの出力値を切り替える方法を解説します。状態コードを表示名に変換する例を通して、基本構文、ELSEとNULLの扱い、条件が重なる場合のWHENの順序を紹介します。
MySQLで文字列を整形・抽出する:TRIM・SUBSTRING_INDEX・REGEXP_SUBSTRの使い方
2026.10.11
MySQLで取得する文字列から不要な空白を除いたり、区切り文字や正規表現を使って必要な部分を取り出したりする方法を紹介します。TRIM・SUBSTRING_INDEX・REGEXP_SUBSTRの基本構文と使い分けを、具体的なSQL例で解説。NULLや空文字、想定した形式に合わない値を扱う際の注意点も整理します。
phpMyAdminユーザー向けMySQL Workbench入門:テーブル確認からSQL実行まで
2026.10.10
phpMyAdminに慣れた人向けに、MySQL Workbenchの基本操作を解説します。両ツールの動作場所と接続経路の違いから、接続設定、テーブル・カラムの構造確認、SQLの実行、結果とエラーの見方までを紹介。SELECTを試す前にEXPLAINで実行計画を確認する手順も扱います。