DELETE ステートメントは、レコードを索引付きファイルまたは相対ファイルから削除します。 索引付きファイルの場合は、レコードを削除した結果生じた未使用キーが、直ちにレコードの追加処理に使用できるようになります。 相対ファイルの場合は、この空間が、同じ RELATIVE KEY 値を持つ新しいレコードに対して使用できるようになります。
DELETE ステートメントの実行時には、関連するファイルが I-O モードでオープンされていなければなりません。
DELETE ステートメント - 形式 >>-DELETE--ファイル名--+--------+-------------------------------> '-RECORD-' >--+-----------------------------------+------------------------> | (1) | '-FORMAT------+----+-+-ID-1-------+-' '-IS-' '-リテラル-1-' >--+---------------------------------+--------------------------> | (1) | '-NULL-KEY-MAP-------+----+--ID-2-' '-IS-' >--+----------------------------------------+-------------------> '-INVALID--+-----+--命令ステートメント-1-' '-KEY-' >--+--------------------------------------------+---------------> '-NOT INVALID--+-----+--命令ステートメント-2-' '-KEY-' >--+------------+---------------------------------------------->< '-END-DELETE-'
注:
DELETE ステートメントの実行が正常に終了すると、レコードはファイルから論理的に削除され、以後そのレコードにアクセスすることはできません。 DELETE ステートメントの実行は、 ファイル名に関連したレコード域の内容 (あるいは、ファイル名 に関連した RECORD 文節の DEPENDING ON 句に指定されたデータ名が参照するデータ項目の内容) には影響しません。
ファイル制御記入項目の中で FILE STATUS 文節が指定されている場合には、DELETE ステートメントの実行時に、関連する状況キーが更新されます。
ファイル位置標識は、DELETE ステートメントの実行による影響を受けません。
関連情報