バイテンポラル表 (bitemporal table) の作成

システム・ベースの履歴情報とアプリケーション期間情報の両方を保守するバイテンポラル表 (bitemporal table) を作成できます。

このタスクについて

システム期間を表に追加してシステム・ベースの履歴情報を保守し、アプリケーション期間を表に追加してアプリケーション期間情報を保守します。

システム期間データ バージョン管理を使用するテーブルに適用される制限の一覧については、 「システム期間データ バージョン管理の制限」を参照してください。

プロシージャー

バイテンポラル表 (bitemporal table) を作成し、表のシステム期間のデータのバージョン管理を定義するには、次の手順で行います。

  1. SYSTEM_TIME 文節と BUSINESS_TIME 文節の両方を指定して CREATE TABLE ステートメントを発行する。
  2. CREATE TABLE ステートメントを発行して、バイテンポラル表 (bitemporal table) から古い行を受け取る履歴表を作成する。
  3. USE HISTORY TABLE 文節を指定した ALTER TABLE ADD VERSIONING ステートメントを発行して、システム期間のデータのバージョン管理を定義し、バイテンポラル表 (bitemporal table) と履歴表との間にリンクを確立する。

以下の例では、バイテンポラル表 (bitemporal table) および履歴表を作成し、システム期間のデータのバージョン管理を定義する方法を示します。

汎用プログラミングインターフェース情報の開始。この例は、バイテンポラル表を作成するための SYSTEM_TIME および BUSINESS_TIME 文節を使用した CREATE TABLE ステートメントを示しています。

CREATE TABLE policy_info
(policy_id CHAR(4) NOT NULL,
coverage INT NOT NULL,
bus_start DATE NOT NULL,
bus_end DATE NOT NULL,
sys_start TIMESTAMP(12) NOT NULL GENERATED ALWAYS AS ROW BEGIN,
sys_end TIMESTAMP(12) NOT NULL GENERATED ALWAYS AS ROW END,
create_id TIMESTAMP(12) GENERATED ALWAYS AS TRANSACTION START ID,
PERIOD BUSINESS_TIME(bus_start, bus_end),
PERIOD SYSTEM_TIME(sys_start, sys_end));

以下の例では、履歴表を作成する CREATE TABLE ステートメントを示します。

CREATE TABLE hist_policy_info
(policy_id CHAR(4) NOT NULL,
coverage INT NOT NULL,
bus_start DATE NOT NULL,
bus_end DATE NOT NULL,
sys_start TIMESTAMP(12) NOT NULL,
sys_end TIMESTAMP(12) NOT NULL,
create_id TIMESTAMP(12));

この例では、バイテンポラル表 (bitemporal table) と履歴表との間にリンクを確立してシステム期間のデータのバージョン管理を有効化する USE HISTORY TABLE 文節を指定した ALTER TABLE ADD VERSIONING ステートメントを示します。 また、バイテンポラル表 (bitemporal table) にユニーク索引を追加します。

ALTER TABLE policy_info
ADD VERSIONING USE HISTORY TABLE hist_policy_info;
CREATE UNIQUE INDEX ix_policy
ON policy_info (policy_id, BUSINESS_TIME WITHOUT OVERLAPS);

汎用プログラミングインターフェース情報の終了。