-20523   TABLE table-name WAS SPECIFIED AS A HISTORY TABLE, BUT THE TABLE DEFINITION IS NOT VALID FOR A HISTORY TABLE. REASON CODE = reason-code.

説明

CREATE TABLE ステートメントまたは ALTER TABLE ステートメントにおいて、表が履歴表として指定されていますが、表定義が無効です。

table-name
表の名前。
reason-code
定義を無効にする可能性がある要件を示す以下の数値。
1
表は、以下のいずれの表にもできません。
  • システム期間テンポラル表。表は、以前のステートメントによってシステム期間テンポラル表として定義されたか、現行のステートメントがシステム期間テンポラル表として定義します。
  • 履歴表。
  • 宣言済みグローバル一時表。
  • 作成されたグローバル一時表。
  • マテリアライズ照会表。
  • ビュー。
  • 補助表。
  • クローン表。
  • クローンがある表。
  • XML 列に対して暗黙的に作成された表。
  • アーカイブ使用可能表またはアーカイブ表。
2
表定義を完全なものにする必要があります。
3
表を、表スペースにおいて唯一の表にする必要があります。
4
表には、以下のいずれの列も使用できません。
  • ID 列
  • 行変更タイム・スタンプ列
  • 行開始列
  • 行終了列
  • トランザクション開始 ID 列
  • 生成式列
5
表に期間定義を含めることはできません。
6
いずれかの参照整合性制約に関係している表は使用できません。
7
履歴表の列の数および順序は、システム期間テンポラル表として使用されている表と同じである必要があります。
8
表にセキュリティー・ラベル列を含めることはできません。
9
システム期間テンポラル表内の列が ROWID として定義されている場合、対応する履歴列は、GENERATED ALWAYS 属性をもつ ROWID として定義する必要があります。
10
システム期間テンポラル表とそれに関連付けられた履歴表の対応する列は、以下の属性に同じ値を持っていなければなりません。
  • 列名
  • データ・タイプ
  • データ・タイプ長 (基本表のインライン LOB 長または XML 長を除く)、精度、およびスケール
  • NULL 属性
  • 非表示属性
  • フィールド・プロシージャー
  • MIXED、BIT、または SBCS DATA 属性と CCSID
11
列マスクまたは行の許可がある表は使用できません。

システムの処置

このステートメントを処理することはできません。

ユーザーの処置

構文を訂正し、ステートメントを再実行依頼してください。

SQLSTATE

428HX