すでに存在するテーブルを元に新規にテーブルを作成するサンプルです。
(テーブルのコピーです。)
構文
- (既存テーブルを元に新規テーブルを作成する)
- CREATE TABLE <新テーブル名> AS <SELECT句>
SELECT句には、既存テーブルを検索するSQLを指定します。
サンプルコード
例)既存テーブル(tbl1)と同じ構成のテーブル(tbl2)を作成する
1 |
CREATE TABLE tbl2 AS SELECT * FROM tbl1; |
上記の例だとデータもコピーされます。
データはコピーしたくない場合は、常にfalseとなるWHERE句を付加すればOKです。
例)テーブルをコピーするが、データはコピーさせない
1 |
CREATE TABLE tbl2 AS SELECT * FROM tbl1 WHERE 1=2; |
コピーのスピードをアップしたい場合
NOLOGGING PARALLELオプションを付加すると、コピーがスピードアップします。
例)NOLOGGING PARALLELオプションを付加した例
1 2 |
CREATE TABLE tbl2 NOLOGGING PARALLEL AS SELECT * FROM tbl1; |
メモ
- 主キーやデフォルト値はコピーされません。 必要な場合はテーブルを作成後に個別に作成してください。
- NOT NULL制約はコピーされます。