既存のテーブルのコピーを作る際に便利だったワザを紹介します。
CREATE TABLE AS SELECT 文で空のテーブルを作成
既存のテーブルをコピーして新しいテーブルを作る場合、
Create Table As Select文でテーブル作成を行うと列定義などのめんどくさいことをしなくてもよくていい感じ。
クエリ例
CREATE TABLE table_a AS SELECT * FROM table_b
しかし、このようなクエリを流すと、データもコピーされてしまいます。
データが不要であれば、DELETEなり、TRUNCATEを流せばいいですが、めんどくさい・・
何かいい方法はないかと思っていましたが、いい方法があったのです!
列定義だけをコピーし、データはコピーしないCREATE TABLE AS SELECT文
ここではカラムの定義だけをコピーし、
レコードはコピーしないCREATE TABLE AS SELECT文の書き方をご紹介します
クエリ例
CREATE TABLE table_a AS SELECT * FROM table_b WHERE 1=2;
WHERE句に「1=2」などの必ず「FALSE」になるダミーの式を入れることによって、
レコードを1行も作成しないCreate Table As Select 文となります
テーブルを作成した後にデータをDELETE,TRUNCATEする必要がないのがGoodですねd(ツ)b