Provided by: postgresql-client-8.0_8.0.7-2build1_i386 bug

NAME

       DELETE - delete rows of a table

SYNOPSIS

       DELETE FROM [ ONLY ] table [ WHERE condition ]

DESCRIPTION

       DELETE  deletes  rows  that satisfy the WHERE clause from the specified
       table. If the WHERE clause is absent, the effect is to delete all  rows
       in the table. The result is a valid, but empty table.

              Tip:  TRUNCATE  [truncate(7)]  is  a  PostgreSQL  extension that
              provides a faster mechanism to remove all rows from a table.

       By default, DELETE will delete rows in the specified table and all  its
       subtables.  If  you  wish  to  delete  only  from  the  specific  table
       mentioned, you must use the ONLY clause.

       You must have the DELETE privilege on the table to delete from  it,  as
       well as the SELECT privilege for any table whose values are read in the
       condition.

PARAMETERS

       table  The name (optionally schema-qualified) of an existing table.

       condition
              A value expression that returns a value  of  type  boolean  that
              determines the rows which are to be deleted.

OUTPUTS

       On successful completion, a DELETE command returns a command tag of the
       form

       DELETE count

       The count is the number of rows deleted. If count is 0, no rows matched
       the condition (this is not considered an error).

NOTES

       PostgreSQL  lets  you  reference  columns  of other tables in the WHERE
       condition. For example,  to  delete  all  films  produced  by  a  given
       producer, one might do

       DELETE FROM films
         WHERE producer_id = producers.id AND producers.name = ’foo’;

       What  is  essentially  happening  here  is  a  join  between  films and
       producers, with all successfully joined films  rows  being  marked  for
       deletion.  This syntax is not standard. A more standard way to do it is

       DELETE FROM films
         WHERE producer_id IN (SELECT id FROM producers WHERE name = ’foo’);

       In some cases the join style is easier to write or  faster  to  execute
       than  the  sub-select  style.  One  objection to the join style is that
       there is no explicit list of what tables are being  used,  which  makes
       the style somewhat error-prone; also it cannot handle self-joins.

EXAMPLES

       Delete all films but musicals:

       DELETE FROM films WHERE kind <> ’Musical’;

       Clear the table films:

       DELETE FROM films;

COMPATIBILITY

       This  command  conforms to the SQL standard, except that the ability to
       reference other tables in the WHERE clause is a PostgreSQL extension.