PostgreSQL7.0手册-用户手册-19. SQL命令-DELETE

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 13:42:57
DELETE
名称
DELETE — 从表中删除行 

语法
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 里交互式游标是只读的.

Tags:

作者:佚名
分享到: 微信 更多