{ 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文は、その準備された位置による削除の文を無効とします。