語法
DELETE FROM table [ WHERE condition ]
輸入
table
現存的表名.
condition
這是一個 SQL 選擇查詢,它返回被選取的行.
請參考 SELECT 語句獲取關 WHERE 子句的更多信息.
輸出
DELETE count
如果行被成功的刪除返回此信息.count 是要被刪除的行數.
如果 count 為 0,沒有行被刪除.
描述
DELETE 從指明的表裡刪除滿足 WHERE condition (條件)的行.
如果 condition (WHERE 子句)不存在,效果是刪除表中所有行.結果是一個有效的空表.
小技巧: TRUNCATE 是一個 Postgres 擴展,它提供一個更快的從表中刪除所有行的機制。
要對表進行修改,你必須有寫權限,同樣也必須有讀表的權限,這樣才能對符合 condition (條件)的值進行讀取操作.
用法
刪除所有電影(films)但不刪除音樂(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)
清空表 films:
DELETE FROM films;
SELECT * FROM films;
code | title | did | date_prod | kind | len
------+-------+-----+-----------+------+-----
(0 rows)
兼容性
SQL92
SQL92 允許定位的 DELETE (刪除)語句:
DELETE FROM table WHERE
CURRENT OF cursor
這裡 cursor 表示一個打開的遊標.Postgres 裡交互式遊標是只讀的.
(http://www.fanqiang.com)
進入【UNIX論壇】