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

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 7.4 已于 2010 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

UPDATE

UPDATE — 更新表中的行

大纲

UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...]
    [ FROM fromlist ]
    [ WHERE condition ]

描述

UPDATE 更改满足条件的所有行中指定 列的值。语句中只需要提及要修改的列;没有显式 SET 的列保留它们先前的值。

默认情况下,UPDATE 将更新指定表及其所有子表中的行。如果只想更新提到的这个特定表,必须使用 ONLY 子句。

要更新表,你必须拥有该表上的 UPDATE 权限, 以及对在 expression 或 condition 中读取其值的任何表的 SELECT 权限。

参数

table

要更新的表的名称(可带模式限定)。

column

table 中一个列的名称。

expression

赋给该列的表达式。该表达式可以使用该表以及其他列的 旧值。

DEFAULT

把该列设置为它的默认值(如果没有给它分配特定的默认表达式, 则为 NULL)。

fromlist

一个表表达式的列表,允许来自其他表的列出现在 WHERE 条件和更新表达式中。

condition

一个返回 boolean 类型值的表达式。只有该表达式返回 true 的行才会被更新。

输出

成功完成时,UPDATE 命令返回一个形如

UPDATE count

的命令标签。count 是被更新的行数。如果 count 为 0,说明没有行匹配 condition(这不被认为是 错误)。

示例

把表 films 的列 kind 中的单词 Drama 改为 Dramatic:

UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';

在表 weather 的一行中调整温度项并把降水重置为其默认 值:

UPDATE weather SET temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT
  WHERE city = 'San Francisco' AND date = '2003-07-03';

兼容性

这个命令符合 SQL 标准。FROM 子句是一种 PostgreSQL 扩展。

提交更正

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