3.6.16 RRN の欄の作成
対象のテーブルに RRN の機能が必要であるかどうかを指定します。これは、テーブルが外部テーブルの時にのみ利用可能です。このようなテーブルは
のアイコンで示されています。
- YES は、相互更新検査の実行と LANSA RRN の機能の使用を可能にするために、テーブルが X_RRNO 列と X_UPID 列 (@@RRNOフィールドと3.7 LANSA作成テーブル内の@@UPID列 ) を必要とすることを指定します。自動的にインクリメントする列が X_RRNO 用に使用されます。
- NO は、テーブルが X_RRNO 列 とX_UPID 列を必要としないことを意味します。このオプションは使用されていませんが、下位互換性を保つために残されています。
警告
- X_RRNO 列と X_UPID 列を削除すると、テーブル上で実行できる機能は制限されます。
以下は制限の一部のリストです。
- RRN の機能を使用するすべてのコマンドはサポートされません (例:WITH_RRN パラメータと RETURN_RRN パラメータ)。
- 相互更新検査が制限されます。つまり、別のユーザーによって実行された更新が上書きされるという可能性 (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 の実行が処理が速くなります。
さらに、次のトピックも参照してください。
3.12 IBM i からのテーブル・インポート