行パーティション テーブルのパーティション列を更新する場合に、以下のルールが適用されます。
- パーティション列を更新しようとするUPDATEリクエストの場合、パーティション式の結果は1とそのレベルに対して定義されたパーティション数の間の値になる必要があります。
- 行を挿入しようとするUPDATEリクエストの場合、その行のパーティション式の結果は1とそのレベルに対して定義されたパーティション数の間の値になる必要があります。
- システム派生列PARTITIONおよびPARTITION#L1~PARTITION#L62を更新できません。
- パーティション式の評価中に、エラー(ゼロで割るなど)が発生することがあります。システムは、エラー発生時に実行されているセッション モードに応じてそのエラーに応答します。
セッション モード 式評価エラーがロールバックする作業単位 ANSI アボートされたリクエストを含んでいるリクエスト Teradata アボートされたリクエストを含むトランザクション。
式のエラーを防ぐために、パーティション式の設計時には注意が必要です。
- 更新の成功のために、テーブルが作成された時点のセッション モードおよびセッション照合が、現在のセッション モードおよび照合と一致する必要はありません。更新される行を含めるパーティションは、テーブルのセッション モードと照合を使用してパーティション列値のパーティション式を評価することによって決まるからです。
- 文字パーティションで定義されているテーブルで行を更新するとき、テーブルの照合がMULTINATIONALまたはCHARSET_COLLのいずれかで、テーブルが作成されてから照合の定義に変更があった場合、テーブル内の行の更新を試みるリクエストがアボートされ、要求元にエラーが返されます。
- テーブル結合インデックスのパーティション式が、Unicode文字式またはリテラルを伴い、テーブルまたは結合インデックスが定義されたときに有効だったコード ポイントとは一致しないUnicodeコード ポイントを持つリリースにまでシステムが戻されると、Teradata Databaseはテーブルへの行の更新の試みをアボートし、要求元にエラーを返します。