CHECK制約の追加および削除 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

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

ALTER TABLE文でのCHECK制約の使用には、次のルールが適用されます。

  • 次の表で、ADDおよびMODIFYのルールについて説明します。
    形式 column_nameの条件
    ADD column_name CHECK (boolean_condition) まだ制約がない
    MODIFY すでに制約がある
    各ALTER TABLEリクエストに対してCHECK変更は1つしか実行できません。また、1つのALTER TABLEリクエストの中ではCHECKと非CHECK変更を混在させることはできません。
  • 名前なしの列レベルのCHECK制約すべてをcolumn_nameから削除する場合:
       ALTER TABLE  table_name  DROP  column_name  CHECK
  • 名前なしのテーブル レベルのCHECK制約すべてをtable nameから削除する場合:
       ALTER TABLE  table_name  DROP CHECK
  • 名前付きCHECK制約を削除するには、次の任意のの文を使用します。
       DROP CONSTRAINT  name  CHECK
       DROP CONSTRAINT  name
  • 次の形式はnameという制約がすでにテーブルに存在している場合にのみ有効です。
       MODIFY CONSTRAINT  name  CHECK (search condition)

    また、この形式は、列定義の一部として定義されている、名前付きの制約にも適用されます。それらの制約は、名前付きのテーブル レベルの制約として扱われるからです。

  • 最高のシステム パフォーマンスを確保するため、テーブルに定義できるテーブル レベルの制約は100個に限定されます。

    テーブル レベル、列レベル、およびビューに対するWITH CHECK制約の組み合わせによっては、INSERTおよびUPDATEリクエストのための制約式が大きくなりすぎて、構文解析できないことがあります。

  • CHECK制約は、グローバル一時テーブルではサポートされません。
  • 次の表で、ALTER TABLEを使用した制約の追加および削除について詳しく説明します。
    実行する文 追加/削除するテーブル レベルの名前なしのCHECK制約の数
    ALTER TABLE … DROP CHECK すべて
    その他 制約の種類に関係なく、ALTER TABLEリクエストにつき1つ。
  • CHECK制約をLOB列に対して定義することができず、LOB列を参照することもできない。