3.7.16 RRN の欄の作成
対象のテーブルに RRN の機能が必要であるかどうかを指定します。これは、テーブルが外部テーブルの時にのみ利用可能です。このようなテーブルは のアイコンで示されています。
- YES は、相互更新検査の実行と LANSA RRN の機能の使用を可能にするために、テーブルが X_RRNO 列と X_UPID 列 (@@RRNOフィールドと 3.8 LANSA作成テーブル内の@@UPID列) を必要とすることを指定します。自動的にインクリメントする列が X_RRNO 用に使用されます。
- NO は、テーブルが X_RRNO 列 とX_UPID 列を必要としないことを意味します。このオプションは使用されていませんが、下位互換性を保つために残されています。
警告
- X_RRNO 列と X_UPID 列を削除すると、テーブル上で実行できる機能は制限されます。 以下は制限の一部のリストです。
- RRN の機能を使用するすべてのコマンドはサポートされません (例:WITH_RRN パラメータと RETURN_RRN パラメータ)。
- 仮想列の設定コードが動作しない場合があります。
- @@UPID 列に、未定義の値が設定されます。
- 相互更新検査が制限されます。つまり、別のユーザーによって実行された更新が上書きされるという可能性 (2つのバッチ・ジョブが同一セットの行を同時に更新するなど) がわずかにあります。
- テーブル上に 1 次キーがない場合は、UPDATE コマンド とDELETE コマンドはサポートされません。
- LANSA に標準で搭載されているほとんどのテンプレートが、これらの列がないと動作しません。
- SQL は、INSERT ステートメントに対してのみ再利用可能です ([RRNOの欄の作成] を使用した場合は、UPDATE、DELETE および再度読み取られた SQL ステートメントに対しても再利用可能です)。すなわち、テーブルに @@UPID および @@RRNO 列を追加すると、UPDATE および DELETE のパフォーマンスが向上します。
ヒントとテクニック
- 外部テーブルに対し [RRNの欄の作成] の初期値をテーブルのロード中に設定できます。新規インストールの場合は、デフォルトで NO になります。選択した値は記憶され、次回ロード時に使用されます。
プラットフォームについて
- IBM i:このオプションは、LANSA テーブルに対しては無視されます。このオプションは、外部テーブルに対しては YES (チェックあり/選択) である必要があります。
注意:LANSA テーブルに自動 RRNO 設定が導入されたことにより、新しい LANSA テーブルに RRN の欄を作成することは必須となりました。自動 RRNO を設定すると、RRNO を格納する ID カラムが作成されます。 これにより、RRNO の生成の非常に速いメソッドが提供されます。既に廃止された、外部テーブルを使って次の RRNO を保存するメソッドよりもずっと速くなります。(上記に記されている通り) RRNO が使用されていないと、重要な多くの LANSA 機能が使用できなくなってしまいます。RRNO は不必要だと思うかもしれませんが、LANSA には必要です。これがないと、多くの機能の導入が非常に難しくなります。この RRNO があることで、実際の LANSA 開発や LANSA の実行が処理が速くなります。