DELETE 文

構文

{
    DELETE FROM 表名
        [WHERE 節] |
    DELETE FROM 表名 WHERE CURRENT OF
}

一つ目の書き方は、検索による削除と呼ばれ、表名とWHERE 節により絞り込まれた行が削除されます。

二つ目の書き方は、位置による削除と呼ばれ、更新可能なカーソルで現在開いている行が削除されます。更新可能なカーソルについてはSELECT 文を参照してください。

DELETE FROM SAMP.IN_TRAY

stmt.executeUpdate("DELETE FROM SAMP.IN_TRAY WHERE CURRENT OF " +
	resultSet.getCursorName());

文の依存

検索による削除では、文が更新する表やそのコングロマリット(ヒープや索引のような記録の単位)に、文が依存します。準備された検索による削除文が対象とする表のCREATEやDROP INDEX文は、その準備された検索による削除文を無効とします。

位置による削除では、文がカーソルやカーソルが参照する表に依存します。たとえまだカーソルが開いてなくても、位置による削除の文はコンパイル可能です。それでも、JDBCのcloseメソッドにより開いたカーソルが取り除かれると、位置による削除の文は無効になります。

準備された位置による削除の文が対象とする表のCREATEやDROP INDEX文は、その準備された位置による削除の文を無効とします。