UPDATE(upsert形式)挿入操作と行パーティション テーブル - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage
ターゲット行パーティション テーブルのupsert形式のUPDATE文のINSERTコンポーネントに対して以下のルールが適用されます。
  • ターゲット テーブルは行パーティション化できますが、列パーティション化できません。
  • ゼロ除算エラーのなどのパーティション式評価エラーの結果は、セッション モードに依存します。
    セッション モード 式評価エラーによってロールバックされる作業単位
    ANSI アボートされたリクエストを含んでいるリクエスト
    Teradata アボートされたリクエストを含むトランザクション。
  • 行を挿入するには、1~65,535の値になるパーティション番号がパーティション式によって(INTEGERデータ型を持たない場合にINTEGERへのキャスト後に)作成される必要があります。
  • INSERT句は、UPDATE句と同じパーティション列値を指定する必要があります。これは、UPDATE条件が期間境界関数に基づいた条件を指定する際にも適用されます。
  • アップサート リクエスト内のPeriod列は、等価条件内の条件でなければなりません。
  • パーティション式の一部としてPeriod列を指定すると、そのテーブルのupsertリクエストの列には、等価条件のみを指定できます。テーブルのパーティション式に指定されているPeriod列に対して不等条件を指定するアップサート リクエストを送信すると、データベースはリクエストをアボートし、エラーを返します。

    ただし、アップサート リクエストのその列に対する等価条件と不等条件の両方に、パーティション式の一部としては定義されていないPeriod列を指定できます。

  • パーティション式で期間境界関数を指定すると、その境界関数の等価条件はパーティション境界マッチング条件として扱われます。

    テーブルのパーティション式でBEGIN境界とEND境界を両方指定すると、両方の境界の等価条件のみがパーティション境界マッチング条件として扱われます。これは、単一パーティションになる必要があります。

  • 条件IS UNTIL_CHANGEDおよびIS UNTIL_CLOSEDは、END境界関数のみに対する等価条件として扱います。
  • 文字パーティションで定義されたテーブルに挿入するアップサート操作について、照合モードは次の影響を及ぼします。行パーティション テーブルの照合がMULTINATIONALかCHARSET_COLLのいずれかで、テーブルが作成されてから照合の定義に変更があった場合、データベースはテーブルでの行の挿入または更新を試みるリクエストをアボートし、要求元にエラーを返します。