データベース・レコードの削除
削除操作を用いると、既存のデータベース・レコードを削除することができます。
データベース・レコードを削除すると、物理レコードには削除済みのマークが付けられます。これは、削除操作が論理ファイルを通して行われた場合にも当てはまります。削除されたレコードを読み取ることはできません。レコードは、それが入っているすべてのキー順アクセス・パスから除去されます。削除済みレコードの相対レコード番号は同じままです。物理ファイル・メンバー中の他のすべての相対レコード番号も変更できません。
- 物理ファイル・メンバーの再編成 (RGZPFM) コマンドを実行して、ファイル・メンバー中のこれらのスペースを圧縮して開放する時点。
- プログラムが、削除されたレコードの相対レコード番号と同じ相対レコード 番号を使用して、ファイルにレコードを書き込む時点。
システムは、削除済みレコードのデータの検索を認めません。しかし、削除済みレコードに関連付けられた位置 (相対レコード番号) に新しいレコードを 書き込むことは可能です。書き込み操作によって、新しいレコードが削除済みレコードに置き換わります。ファイル中の特定の位置 (相対レコード番号) にレコードを 書き込む方法の詳細については、ご使用の高水準言語の該当のトピックを参照してください。
削除済みレコードの相対レコード番号にレコードを書き込むためには、その相対レコード番号が物理ファイル・メンバーの中に存在していなければなりません。ファイル中のレコードは、高水準言語で削除操作を使用して削除できます。物理ファイル・メンバーの初期設定 (INZPFM) コマンドを使用 して、ファイルからレコードを削除できます。INZPFM コマンドを使用すれば、レコードを削除するために 物理ファイル・メンバー全体を初期設定できます。
削除するレコードが入っているファイルで削除トリガーがそれに関連付けられている場合、 レコードの削除の前または後にトリガー・プログラムが呼び出されます。レコードを削除して、削除トリガーを実行しないようにする場合は、TRUNCATE SQL ステートメントを IGNORE DELETE TRIGGERS 節と共に使用します。
ファイルが参照制約関係の一部である場合は、レコード削除に影響が出ることがあります。