図6-40-DELETE構文(レコードの削除)
DELETE文は、ORGANIZATION RELATIVEまたはORGANIZATION INDEXEDファイルから論理的にレコードを削除する。
ACCESS MODE IS SEQUENTIALであるファイルには、INVALID KEY句とNOT INVALID KEY句を指定できない。
INVALID KEY句には、DELETEの失敗に対応できる機能があり、NOT INVALID KEY句は、DELETEの成功時に実行するアクションをプログラムが指定する機能を持つ。
ORGANIZATIONのファイル名は、RELATIVEまたはINDEXEDでなければならない。
SEQUENTIALアクセスモードのRELATIVEまたはINDEXEDファイルは、DELETE文の実行前にファイル名に対して実行された最後の入出力文が、正常に実行されたREAD文である必要があり、削除されるレコードを識別している。
RELATIVEファイルのACCESS MODEがRANDOMまたはDYNAMICの場合、削除されるレコードは、相対レコード番号がRELATIVEKEYとして指定された現在の項目値である。
INDEXEDファイルのACCESS MODEがRANDOMまたはDYNAMICの場合、削除されるレコードは、主キーがRECORD KEYとして指定された現在の項目値である。
RELATIVE KEYまたはRECORD KEYの値によって削除するように指定されたレコードが、アクセスモードのRANDOMファイルまたはDYNAMICファイルに存在しない場合、INVALID KEY条件によってINVALID KEY句を介して処理できる。これは4項に記述したように、ACCESS MODE SEQUENTIALファイルには存在しない条件である。ACCESS MODE SEQUENTIALファイルでのDELETE文の失敗は、DECLARATIVESを介してのみ「処理」することが可能である。