↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本PostgreSQL 6.4 已于 2003 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

UPDATE

UPDATE — 替换表中各列的值

大纲

UPDATE table SET column = expression [, ...]
    [ FROM fromlist ]
    [ WHERE condition ]

输入

table

一个现有表的名称。

column

table 中一个列的名称。

expression

赋给列的一个有效表达式或值。

fromlist

一个 Postgres 非标准扩展,允许来自其他表的列 出现在 WHERE 条件中。

condition

WHERE 子句的进一步描述请参阅 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 标识一个打开的游标。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。