Teradata Database メッセージ 5728 - 17.10 - 5728 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベース メッセージ

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1096-171K-JPN
Language
日本語 (日本)
メッセージ
Partitioning violation for table %DBID.%TVMID.
説明
1) プライマリ インデックスのパーティション化定義でそのデータが許可されていないテーブルに対して、挿入または更新が行なわれた。または、2) ALTER TABLE文がプライマリ インデックスのパーティション化を変更しようとしたが、新しいパーティション式で許可されていない既存の行が存在し、WITH DELETE/INSERT句が指定されていなかった。単一レベルの2バイトのパーティション化プライマリ インデックスがあるテーブルの行の場合は、"(CAST((partitioning expression ) AS INTEGER) ) BETWEEN 1 AND max""(maxは65535以下)という暗黙のチェック制約があります。パーティション式がすでにINTEGERである場合、またはRANGE_N関数のみで構成されている場合は、このCASTは含まれません。パーティション式がRANGE_N関数またはCASE_N関数のみで構成されている場合は、小さい方の値がmaxとして使用されます。その場合、maxはその関数によって定義されている範囲/パーティションの数です。パーティション式の結果がNULLになった場合は、制約に違反していることになります。マルチレベルまたは8バイトのパーティション化プライマリ インデックスがあるテーブルの行の場合は、"partitioning_expression_1 IS NOT NULL [AND partitioning_expression_n IS NOT NULL]..."という暗黙のチェック制約があります。この制約に違反している行はテーブルに含めることができないため、テーブルに挿入することや、更新の場合にテーブル内の行を置き換えることはできません。また、既存の行が新しいパーティション式に違反していて、ALTER TABLE文でWITH DELETE/INSERT句が指定されていない場合は、新しいパーティション化は適用できません。%TVMIDは、パーティション化の制約違反が発生したテーブルを示しています。%DBIDは、そのテーブルが含まれているデータベースを示しています。
発生源
STPモジュール
対象ユーザー
エンド ユーザー
注意
なし
対処法
1)の場合は、パーティション式で参照されている列の値を訂正して、要求を再実行します。2)の場合は、既存行をすべて許容する新しいパーティション式を使用して表の変更を行なうか、WITH DELETE/INSERT句を使用します。