例: テーブルへのNORMALIZE制約の追加 - Teradata Database - Teradata Vantage NewSQL Engine - 例: テーブルへのNORMALIZE制約の追加、ALTER TABLE構文の文。

Teradata Vantage™ SQLデータ定義言語 構文規則および例

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

次の各例では、テーブルにNORMALIZE制約を追加するALTER TABLEリクエストの使用方法を示します。NORMALIZE制約のシステム デフォルトの条件は、次のとおりです。

  ON MEETS OR OVERLAPS

すべての例で、次の テーブル定義または同等のテンポラル テーブル定義を使用します。 テーブル定義では、NORMALIZE制約を指定しません。

     CREATE TABLE project (
       emp_id       INTEGER,
       project_name VARCHAR(20),
       dept_id      INTEGER,
       duration     PERIOD(DATE));

次のALTER TABLEリクエストでは、project表を変更して、NORMALIZE制約をduration列に追加します。各行は、emp_idproject_name、およびdept_id列の値が同じで、duration列の期間値が隣接または重複する場合にのみ正規化されます。

     ALTER TABLE project 
     ADD NORMALIZE ON duration;

次のALTER TABLEリクエストでは、project表を変更して、NORMALIZE制約をduration列に追加します。dept_id列は、正規化の対象にならない唯一の列です。

各行は、emp_id列とproject_name列の値が同じで、duration列の期間値が隣接または重複する場合にのみ正規化されます。

     ALTER TABLE project 
     ADD NORMALIZE ALL BUT(dept_id) ON duration;

次のALTER TABLEリクエストではproject表を変更して、NORMALIZE制約をduration列に追加します。この制約はduration列の期間値が重複する場合にのみ適用されます。 Thedept_id列は、正規化の対象にならない唯一の列です。

各行は、emp_id列とproject_name列の値が同じで、duration列の期間値が重複する場合にのみ正規化されます。

     ALTER TABLE project 
     ADD NORMALIZE ALL BUT(dept_id) ON duration ON OVERLAPS;

次のALTER TABLEリクエストではproject表を変更して、NORMALIZE制約をduration列に追加します。この制約はduration列の期間値が重複する場合にのみ適用されます。 Thedept_id列は、正規化の対象にならない唯一の列です。

各行は、emp_id列とproject_name列の値が同じで、duration列の期間値が重複する場合にのみ正規化されます。

     ALTER TABLE project 
     ADD NORMALIZE ALL BUT(dept_id) ON duration ON OVERLAPS;

次の例では、duration列に対するON OVERLAPSのNORMALIZE条件を使用して、project表を定義します。

     CREATE TABLE project (
       emp_id INTEGER,
       project_name VARCHAR(20),
       dept_id INTEGER,
       duration PERIOD(DATE),
     NORMALIZE ALL BUT (dept_id) ON duration ON OVERLAPS);

projectの定義を変更して、project_name列をALL BUT normalize_ignore列リストに追加します。さらに、既存のON OVERLAPS条件にOR MEETS条件を追加します。

     ALTER TABLE
     ADD NORMALIZE ALL BUT(dept_id,project_name) ON duration ON OVERLAPS
      OR MEETS;

このALTER TABLEリクエストを実行すると、Teradata Databaseはproject表を正規化します。