# DELETE statement

The DELETE statement removes rows from a table.

## Syntax

    {
        DELETE FROM tableName [ [ AS ] correlationName ]
            [ WHERE clause ]
      |
        DELETE FROM tableName WHERE CURRENT OF clause
    }

The first syntactical form, called a searched delete, removes all rows identified by the table name and WHERE clause.

The second syntactical form, called a positioned delete, deletes the current row of an open, updatable cursor. For more information about updatable cursors, see SELECT statement.

## Examples

    DELETE FROM SAMP.IN_TRAY

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

## Statement dependency system

A searched delete statement depends on the table being updated, all of its conglomerates (units of storage such as heaps or indexes), and any other table named in the WHERE clause. A CREATE or DROP INDEX statement for the target table of a prepared searched delete statement invalidates the prepared searched delete statement.

The positioned delete statement depends on the cursor and any tables the cursor references. You can compile a positioned delete even if the cursor has not been opened yet. However, removing the open cursor with the JDBC close method invalidates the positioned delete.

A CREATE or DROP INDEX statement for the target table of a prepared positioned delete invalidates the prepared positioned delete statement.

Parent topic: Statements