Teradata Database メッセージ 5728 - 5728 - Advanced SQL Engine - Teradata Database
Teradata Vantage™ - データベース メッセージ
- Product
- Advanced SQL Engine
- Teradata Database
- Release Number
- 17.05
- Published
- 2021年1月
- Language
- 日本語
- Last Update
- 2021-01-28
- dita:mapPath
- ja-JP/tsh1596250259800.ditamap
- dita:ditavalPath
- ft:empty
- dita:id
- vza1585613049811
- NMT
- yes
- Product Category
- Software
- Teradata Vantage
- メッセージ
- 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句を使用します。