メタデータのサポート
変更ビュー へ戻る
サブスクリプション情報は、新しいシステム関連 RDB$SUBSCRIPTIONS に、RDB$SUBSCRIPTION_NAME、RDB$SUBSCRIBER_NAME、RDB$DESTINATION について一意のキーで格納されています。 追加フィールドには、変更されたデータの「チェックイン」や「チェックアウト」を簡単にする制御情報が格納されています。 これには、スキーマ オブジェクト上で変更されたデータの、最後に観察された、トランザクション ID、タイムスタンプ、トランザクション コンテキストが含まれています。
-
- 用語「チェックアウト」は、サブスクリプションが活性化された際、サブスクライブされたテーブルの行の変更列の
SELECT
を指します。 - 用語「チェックイン」は、サブスクリプションが活性化された際、サブスクライブされたテーブルの行の変更列の
INSERT
、UPDATE
、DELETE
を指します。 - サブスクリプションは、データベース セッションの間、
SET SUBSCRIPTION ACTIVE
の実行で活性化されます。 SET SUBSCRIPTION INACTIVE
の実行で非活性化されます。
- 用語「チェックアウト」は、サブスクリプションが活性化された際、サブスクライブされたテーブルの行の変更列の
目次
サブスクリプション/サブスクライバ テーブル
このトピックでは、変更ビュー機能の実装で、新規追加および更新された列について取り上げます。 RDB$SUBSCRIPTIONS および RDB$SUBSCRIBERS は、サブスクリプション/サブスクライバ要素をカバーする新しいテーブルです。 一覧されているその他のテーブルは、既存のテーブルに対して更新または追加された列を示しています。
RDB$SUBSCRIPTIONS
これは、新しいシステム関連/テーブルです(ODS バージョン 16 以降)。
列名 | データ型 | 長さ | 説明 |
---|---|---|---|
RDB$SUBSCRIPTION_NAME | CHAR | 67 | サブスクリプションの名前 |
RDB$RELATION_COUNTER | SMALLINT | 2 | 1 つのサブスクリプション内部の複数行項目を追跡するカウンタ |
RDB$RELATION_NAME | CHAR | 67 | 関連またはビューの名前 |
RDB$FIELD_NAME | CHAR | 67 | フィールドの名前 |
RDB$DESCRIPTION | BLOB | サブタイプ テキスト: サブスクリプションのテキスト説明 | |
RDB$SECURITY_CLASS | CHAR | 67 | サブスクリプションのセキュリティ クラス(SQL セキュリティ目的の所有者) |
RDB$OWNER_NAME | CHAR | 67 | サブスクリプションを作成したユーザー |
RDB$RUNTIME | BLOB | パフォーマンス強化のためのランタイム バイナリ情報 | |
RDB$FLAGS | SMALLINT | 2 | |
RDB$INSERT | BOOLEAN | 2 | 挿入が追跡される |
RDB$UPDATE | BOOLEAN | 2 | 更新が追跡される |
RDB$DELETE | BOOLEAN | 2 | 削除が追跡される |
RDB$CHANGE | BOOLEAN | 2 | すべてのオペレーションを追跡するが、どの列が変更されても即座に返る |
RDB$SUBSCRIBERS
これは、新しいシステム関連/テーブルです(ODS バージョン 16 以降)。 必要なサブスクライバ情報は、システム関連テーブルに格納されています。
列名 | データ型 | 長さ | 説明 |
---|---|---|---|
RDB$SUBSCRIBER_NAME | CHAR | 31 | サブスクライブしたユーザー名 |
RDB$SUBSCRIPTION_NAME | CHAR | 67 | サブスクリプションの名前 |
RDB$DESTINATION | CHAR | 32 | サブスクライバの通知先 |
RDB$FLAGS | SMALLINT | 2 | |
RDB$CHECK_OUT_TRANSACTION_ID | INT64 | 8 | 最後のサブスクリプション チェックアウトのトランザクション ID |
RDB$CHECK_OUT_TIMESTAMP | TIMESTAMP | 8 | 最後のサブスクリプション チェックアウトの日時 |
RDB$CHECK_OUT_OLDEST_TRANSACTION_ID | INT64 | 8 | チェックアウト時の最も古いアクティブ トランザクションのトランザクション |
RDB$CHECK_OUT_TRANSACTIONS | BLOB | 最終トランザクション チェックアウト時のアクティブ トランザクション ID のセット | |
RDB$CHECK_IN_TRANSACTION_ID | INT64 | 8 | 最終サブスクリプション チェックインのトランザクション ID |
RDB$CHECK_IN_TIMESTAMP | TIMESTAMP | 8 | 最後のサブスクリプション チェックインの日時 |
RDB$CHECK_IN_TRANSACTIONS | BLOB | このサブスクリプションによるチェックイン トランザクション ID のセット |
RDB$ENCRYPTIONS
RDB$ENCRYPTIONS は、データベースに格納される暗号の文字を説明します。列名 RDB$FLAGS は更新され、RDB$ENCRYPTION_ID が追加されました:
列名 | データ型 | 長さ | 説明 |
---|---|---|---|
RDB$FLAGS | SMALLINT | 2 |
|
RDB$ENCRYPTION_ID | SMALLINT | 暗号化キーの一意の識別子 |
RDB$FIELDS
RDB$FIELDS は、列の特性を定義します。 各ドメインまたは列は、RDB$FIELDS に対応する行があります。 新たな列名 RDB$SUBSCRIBE_FLAG が追加されました:
列名 | データ型 | 長さ | 説明 |
---|---|---|---|
RDB$SUBSCRIBE_FLAG | SMALLINT | 2 | フィールドの 1 つ以上のサブスクリプションを示す。 |
RDB$TRIGGERS
このテーブルはトリガを定義します。列名 RDB$PRIVILEGE は、新しいサブスクライブ値で追加されました:
列名 | データ型 | 長さ | 説明 |
---|---|---|---|
RDB$PRIVILEGE | CHAR | 6 | 上記の RDB$USER 列に一覧されるユーザーに認可される権限を示します。フィールドに格納される文字は、以下に一覧される有効な値に該当します。
有効な値:
|
既存のメタデータ関連にも変更がありました:
RDB$RELATIONS
RDB$RELATIONS は、テーブルおよびビューの特性を一部定義します。列名 RDB$FLAGS は、次のように更新されました:
列名 | データ型 | 長さ | 説明 | |
---|---|---|---|---|
RDB$FLAGS | SMALLINT | 2 | No |
|
RDB$RELATION_FIELDS
データベース テーブルの場合、RDB$RELATION_FIELDS は、列を一覧し、ドメインに対する列の特性を記述します。 4 つの列名が追加されました: RDB$FLAGS、 RDB$FIELD_NAME、RDB$RELATION_NAME、 RDB$FIELD_SOURCE で、次のようになっています:
列名 | データ型 | 長さ | 説明 | |
---|---|---|---|---|
RDB$FIELD_NAME | CHAR | 67 | ユーザーによって定義される列名 | |
RDB$RELATION_NAME | CHAR | 67 | ユーザーによって定義されるテーブル名 | |
RDB$FIELD_SOURCE | CHAR | 67 | RDB$FIELDS.RDB$FIELD_NAME と一致する内部列名 | |
RDB$FLAGS | SMALLINT | 2 | Yes | 1 = フィールド上の 1 つ以上のサブスクリプション |
RDB$USER_PRIVILEGES
RDB$USER_PRIVILEGES は、SQL GRANT 文でユーザーに割り当てられた権限の追跡します。 列名 RDB$USER と RDB$GRANTOR は、長さ 31 から 67 に更新されました:
列名 | データ型 | 長さ | 説明 | |
---|---|---|---|---|
RDB$USER | CHAR | 67 | RDB$PRIVILEGE 列に一覧された権限が認可されたユーザー名 | |
RDB$GRANTOR | CHAR | 67 | 権限を認可したユーザー名 | |
RDB$PRIVILEGE | CHAR | 6 | No | Subscribe (B) |