インフラエンジニアbacchiのわかったことまとめ

bacchi.me

DB MySQL PostgreSQL

既存のテーブルをコピーする際の便利ワザ

更新日:

既存のテーブルのコピーを作る際に便利だったワザを紹介します。

CREATE TABLE AS SELECT 文で空のテーブルを作成

既存のテーブルをコピーして新しいテーブルを作る場合、
Create Table As Select文でテーブル作成を行うと列定義などのめんどくさいことをしなくてもよくていい感じ。

クエリ例

しかし、このようなクエリを流すと、データもコピーされてしまいます。

データが不要であれば、DELETEなり、TRUNCATEを流せばいいですが、めんどくさい・・

何かいい方法はないかと思っていましたが、いい方法があったのです!

列定義だけをコピーし、データはコピーしないCREATE TABLE AS SELECT文

ここではカラムの定義だけをコピーし、
レコードはコピーしないCREATE TABLE AS SELECT文の書き方をご紹介します

クエリ例

WHERE句に「1=2」などの必ず「FALSE」になるダミーの式を入れることによって、
レコードを1行も作成しないCreate Table As Select 文となります

テーブルを作成した後にデータをDELETE,TRUNCATEする必要がないのがGoodですねd(ツ)b

Sponsor Link

スポンサーリンク

Sponsor Link

スポンサーリンク

-DB, MySQL, PostgreSQL

Copyright© bacchi.me , 2018 AllRights Reserved.