DELETE
DELETE FROM [ ONLY ] table [ WHERE condition ]
輸入
-
table
-
一個現存表的名字
-
condition
-
這是一個 SQL 選擇查詢,它返回要被刪除的行.
請參考 SELECT 語句獲取關于 WHERE 子句的更多信息.
輸出
-
DELETE count
-
如果行被成功的刪除返回此信息. count 是要被刪除的行數.
如果 count 為 0, 沒有行被刪除.
描述
DELETE 從指明的表里刪除滿足 WHERE condition (條件)的行.
如果 condition (WHERE 子句)不存在, 效果是刪除表中所有行.結果是一個有效的空表.
小技巧:
TRUNCATE
是一個 Postgres 擴展, 它提供一個更快的從表中刪除所有行的機制。
缺省時DELETE將刪除所聲明的表和所有它的子表的記錄. 如果你希望只更新提到的表,你應該使用OLNY子句.
要對表進行修改,你必須有寫權限,同樣也必須有讀表的權限,這樣才能對符合 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 里交互式游標是只讀的.
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://www.tkk7.com/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2006-06-02 18:57
zhyiwww 閱讀(242)
評論(0) 編輯 收藏 所屬分類:
database