CREATE TABLE AS

Name

CREATE TABLE AS  --  SELECT の結果から新しいテーブルを作成

Synopsis

CREATE [ TEMPORARY | TEMP ] TABLE table [ (column [, ...] ) ]
     AS select_clause
  

入力

TEMPORARY または TEMP

指定されている場合は、テーブルはこのセッション内でのみ 作られ、セッションの終りに自動的に削除されます。同じ名前を持つ 既存の永続テーブルは(このセッション内では)一時テーブルが存在 する間は見ることができません。一時テーブル上に作られるインデックス は自動的に一時的なものになります。

table

新しく作られるテーブル名です。このテーブルは既に 存在するものであってはなりません。しかし、既存の永続テーブル と同じ名前を持つ一時テーブルを作ることはできます。

column

列の名前です。カンマで区切られた列名のリストを使って複数の列名 を指定することができます。列名を指定しない場合は、SELECT 問い合わせの出力列名からとられます。

select_clause

有効な問い合わせ文です。認められる構文の説明は SELECT を参照してください。

出力

出力メッセージの要約は CREATE TABLESELECT を 参照してください。

説明

CREATE TABLE AS はテーブルを作成し SELECT コマンドによって算出されるデータ を格納します。テーブルの列は SELECT の 出力列と関連する名前とデータ型を持ちます(ただし SELECT 列名は列名を明示したリストを 渡すことで無効にすることができます)。

CREATE TABLE AS はビューの作成と似ている部分が ありますが、実際は全く異なります。CREATE TABLE AS は新しい テーブルを作成し、新しいテーブルの中身を初期化するために一度だけ SELECT を評価します。新しいテーブルはその次の 変化を SELECT のソーステーブルに反映しません。 反対に、ビューは与えられた SELECT を 問い合わせられるたびに再評価します。

このコマンドは SELECT INTO と同じ機能を持ちますが、SELECT ... INTO 構文の他の使用方法と混乱する可能性が少ないため、こちらを使用 する方が良いでしょう。