DELETE
  SQL - Language Statements
 
 
  
   DELETE
  
  
   delete rows of a table
  
 
 
  
   1999-07-20
  
  
DELETE FROM [ ONLY ] table [ WHERE condition ]
  
  
   
    1998-04-15
   
   
    Inputs
   
   
    
     
      table
      
       
	The name (optionally schema-qualified) of an existing table.
       
      
     
     
      condition
      
       
	This is an SQL selection query which returns the rows which
	are to be deleted.
       
       
	Refer to the SELECT statement for further description
	of the WHERE clause.
       
      
     
    
   
  
  
   
    1998-04-15
   
   
    Outputs
   
   
    
     
      
DELETE count
       
      
       
	Message returned if items are successfully deleted. The
	count is the number
	of rows deleted.
       
       
	If count is 0,
	no rows were deleted.
       
      
     
    
   
  
 
 
  
   1998-04-15
  
  
   Description
  
  
   DELETE removes rows which satisfy the WHERE
   clause from the specified table.
  
  
   If the condition (WHERE clause) is absent,
   the effect is to delete all rows in the table.
   The result is a valid, but empty table.
   
    
      is a
     PostgreSQL extension which provides a
     faster mechanism to remove all rows from a table.
    
   
  
  
  By default DELETE will delete tuples in the table specified 
  and all its sub-tables. If you wish to only update the
  specific table mentioned, you should use the ONLY clause.
  
  
   You must have write access to the table in order to modify
   it, as well as read access to any table whose values are
   read in the condition.
  
 
 
  
   Usage
  
  
   Remove all films but musicals:
DELETE FROM films WHERE kind <> 'Musical';
SELECT * FROM films;
 code  |           title           | did | date_prod  |  kind   | len
-------+---------------------------+-----+------------+---------+-------
 UA501 | West Side Story           | 105 | 1961-01-03 | Musical | 02:32
 TC901 | The King and I            | 109 | 1956-08-11 | Musical | 02:13
 WD101 | Bed Knobs and Broomsticks | 111 |            | Musical | 01:57
(3 rows)
  
  
   Clear the table films:
DELETE FROM films;
SELECT * FROM films;
 code | title | did | date_prod | kind | len
------+-------+-----+-----------+------+-----
(0 rows)
      
  
 
 
  
   Compatibility
  
  
   
    1998-04-15
   
   
    SQL92
   
   
    SQL92 allows a positioned DELETE statement:
   
    
DELETE FROM table WHERE
    CURRENT OF cursor
    
    where cursor
    identifies an open cursor.
    Interactive cursors in PostgreSQL are read-only.