-548 A CHECK CONSTRAINT THAT IS DEFINED WITH column-name IS INVALID
説明
CREATE TABLE または ALTER TABLE ステートメントのチェック制約は、以下のうち 1 つ以上の理由から無効です。
- 制約定義が、フィールド・プロシージャーをもつ列を参照している。
- 制約定義が、他のオペランドのデータ・タイプよりも
下位の階層の数値データ・タイプの列を参照している。 階層は以下のとおり。
small integer < large integer < big integer < decimal < single precision float < double precision float
- 制約定義が、他の列オペランドと同じではない数値データ・タイプをもつ列を参照する。
- 列および他のオペランドが文字ストリング・データ・タイプではない場合、 制約定義が、他のオペランドよりも長さが短い列を参照している。
- 制約定義が、ROWID 列をもつ列を参照している。
- 制約定義が、LOB 列をもつ列を参照している。
- 制約定義は、DECFLOAT 列を参照している。
- 制約定義が、EBCDIC 表の Db2® 11 Unicode 列を参照している。
- 制約に、XML 列が含まれる。
- 制約定義に、XMLQuery 式が含まれる。
- XMLQUERY または XMLEXISTS 引数リストに、同じ名前の 2 つの引数が含まれている。
- 生成される列式が、列マスクが定義されている列を参照する。
- 制約定義に、特殊レジスターの値に依存する組み込み関数が含まれている。
- 制約定義にグローバル変数が含まれている。
システムの処置
このステートメントを処理することはできません。
ALTER TABLE の場合、チェック制約はオブジェクト表に追加されません。 表の定義は変更されません。
CREATE TABLE の場合、表は作成されません。
プログラマーの応答
チェック制約定義を訂正し、 ステートメントを再び実行してください。
SQLSTATE
42621