历史版本。 PostgreSQL 6.4 已结束支持。 请参阅 当前版本手册.
UPDATE
UPDATE — 替换表中各列的值
大纲
UPDATEtableSETcolumn=expression[, ...] [ FROMfromlist] [ WHEREcondition]
输入
table一个现有表的名称。
columntable中一个列的名称。expression赋给列的一个有效表达式或值。
fromlist一个 Postgres 非标准扩展,允许来自其他表的列出现在 WHERE 条件中。
conditionWHERE 子句的进一步描述请参阅 SELECT 语句。
输出
- UPDATE
# 成功时返回的消息。
#表示被更新的行数。如果#等于 0,则没有行被更新。
描述
UPDATE 更改所有满足条件的行中指定列的值。只有要修改的列才需要作为列出现。
数组引用使用与 SELECT 中相同的语法。也就是说,可以用单次查询替换单个数组元素、数组元素的一个范围或整个数组。
要修改表,你必须拥有对它的写权限,以及对 WHERE 条件中提到其值的任何表的读权限。
用法
--Change word "Drama" with "Dramatic" on column kind:
--
UPDATE films
SET kind = 'Dramatic'
WHERE kind = 'Drama';
SELECT * FROM films WHERE kind = 'Dramatic' OR kind = 'Drama';
code |title |did| date_prod|kind |len
-----+-------------+---+----------+----------+------
BL101|The Third Man|101|1949-12-23|Dramatic | 01:44
P_302|Becket |103|1964-02-03|Dramatic | 02:28
M_401|War and Peace|104|1967-02-12|Dramatic | 05:57
T_601|Yojimbo |106|1961-06-16|Dramatic | 01:50
DA101|Das Boot |110|1981-11-11|Dramatic | 02:29兼容性
SQL92
SQL92 为定位式 UPDATE 语句定义了一种不同的语法:
UPDATE table SET column = expression [, ...]
WHERE CURRENT OF cursor
其中 cursor
标识一个打开的游标。