CHECK制約列の属性 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

列に挿入できる、または列で更新できる値を制約するために使用される、名前付き単純ブール条件式を指定します(任意指定)。

列属性のCHECK制約は、そのテーブルの別の列や他のテーブルの列を参照できません。

複数のCHECK制約を1つの列に指定すると、このようになります。

  • 複数の名前なし列レベルCHECK制約は、単一の列レベルCHECK制約に組み合わせられます。
  • 複数の名前付き列レベルCHECK制約は、個別に処理されます。

非テンポラル テーブルとテンポラル テーブルに対して、列レベルのCHECK制約を指定できます。<Teradata Vantage™ - ANSIテンポラル テーブル サポート、B035-1186>と<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。

CHECK (boolean_condition)
boolean_conditioncolumn_nameを参照する必要があります。
名前なしのCHECK列制約には、この構文を使用します。
     CHECK (boolean_condition)
CONSTRAINT constraint_name
名前付きのCHECK列制約には、この構文を使用します。
     CONSTRAINT constraint_name CHECK (boolean_condition)

例: 列レベルおよびテーブル レベル名前付きおよび名前なしCHECK制約の混合の指定

この例のリクエストは、名前の付いていない3つのCHECKをcolumn_1に結び付けます。制約check_0とcolumn_2の名前付きのCHECKのそれぞれは、テーブル制約として扱われます。

    CREATE TABLE good_4 (
      column_1 INTEGER
        CHECK (column_1 > 0)
        CHECK (column_1 < 999)
        CHECK (column_1 NOT IN (100,200,300))
       CONSTRAINT check_0
        CHECK (column_1 IS NOT NULL),
      column_2 INTEGER
       CONSTRAINT check_1
        CHECK (column_2 > 0)
        CHECK (column_2 < 999));