CREATE TABLE
CREATE TABLE
コマンドは、指定されたSchema(指定された場合)に新しいTableを作成します。スキーマ名がコマンドに含まれていない場合、一時テーブルが作成されます。
Syntax
CREATE
TABLE
[<dwh_schema_name>.]<table_name> <table_definition>
必要であれば、 PRIMARY KEY
句を使用して主キーを指定することもできます:
CREATE
TABLE
dwh.table1 (col1
integer
, col2 string,
PRIMARY
KEY
(col1)) ;;
Example:
CREATE
TABLE
dwh.table1 (col1
integer
);
このコマンドは、integer
型のカラムcol1
を持つ分析ストレージスキーマdwh
にtable1
というテーブルを作成します。
このコマンドを正しく実行するには、スキーマ名(指定された場合)が分析ストレージ スキーマ名と一致し、作成されるテーブルが指定されたスキーマにすでに存在していない必要があります。
SELECT INTO
SELECT INTO
コマンドは、ソース テーブルまたはソース テーブルの結合を取り、指定された Schema で新しいテーブルを作成し、ソース テーブルからデータをコピーします。
Syntax
SELECT
<projection_symbols>
INTO
<dwh_schema_name>.<table_name>
FROM
<from_clause>
例1:
SELECT
*
INTO
dwh.table1
FROM
source.table2;
このコマンドは、source.table2
と同じ列定義で、分析ストレージdwh
にtable1
という新しいテーブルを作成します(アスタリスクは投影リストで使用されます)。
例2:
SELECT
t1.a, t2.b
INTO
dwh.table1
FROM
source.table2 t1
JOIN
source.table2 t2
ON
t1.c = t2.c;
このコマンドは、Analytical Storage dwh
に、 2つの列a
とb
を持つtable1
という新しいテーブルをソース・テーブルと同じ型で作成します。
このコマンドを正しく実行するには、以下の Criteria を満たす必要があります:
- スキーマ名は、分析ストレージ・スキーマの名前、または
importer.defaultSchema
プロパティが適切に設定されたスキーマと一致する必要があります; INTO
句で指定されたテーブルは、指定された Schema にすでに存在してはなりません;- ソース・テーブルがソース・スキーマに存在する必要があります。
importer.useFullSchemaName Model Property
CREATE TABLE
とSELECT INTO
の両コマンドは、データソースのimporter.useFullSchemaName
モデルプロパティによって動作が異なります。その値はTRUE
またはFALSE
のいずれかであり、どちらの場合も動作は以下のとおり:
importer.useFullSchemaName=TRUE
Query | Schema in DB | Table name in DB | Table name in DV |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
| Query fails because the schema |
importer.useFullSchemaName=FALSE
Query | Schema in DB | Table name in DB | Table name in DV |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
た と えば、test_dwh.public.p1
というテーブルを作成し、 プロパテ ィ をTRUE
に設定す る と 、 タ ーゲ ッ ト デー タ ベース のテーブル名は p1
にな り 、 その完全修飾名は some_DB.public.p1
にな り ます。
プロパティをFALSE
に設定すると、テーブル名は public.p1
となり、その完全修飾名は some_DB.public.public.p1
となります。最初の "public" はデータベース内のSchema名で、2番目はテーブル名の一部です。どちらの場合もCData Virtuality Server では test_dwh.public.p1
となります。