域名 AXUM.RS 将于 2025 年 10 月到期。我们无意再对其进行续费,如果你有意接续这个域名,请与我们取得联系。
  • AXUM.RS 现仅需人民币 3000 元(大写:叁仟元整。接受适度议价
  • 按照行业规则,AXUM.RS 到期后,大概率会进入长时间的赎回期,该期间内,如果你想拥有该域名,将要付出高额的费用
  • 我们已启用 AXUM.EU.ORG 域名,并将持续运营
  • 仅接受微信或支付宝交易
如果你对 AXUM.RS 有兴趣,请和我们进行联系:

修改数据

本章将讨论如何使用 UPDATE 语句修改 PostgreSQL 数据,以及配合 RETURNING 子句在修改数据的同时,返回修改后的内容。最后,还将介绍 UPDATE JOIN:根据另一张表中的数据进行修改。

UPDATE 简介

基础语法:

UPDATE 表名
SET 字段1 = 值1,
    字段2 = 值2,
    ...
WHERE 条件;

如果没有通过 WHERE 指定条件,将修改所有记录!

如果没有通过 WHERE 指定条件,将修改所有记录!

RETURNING 子句

UPDATE 语句也有可选的 RETURNING 子句,它将返回修改后的数据。

示例

示例数据 :

DROP TABLE IF EXISTS courses;

CREATE TABLE courses(
	course_id serial primary key,
	course_name VARCHAR(255) NOT NULL,
	description VARCHAR(500),
	published_date date
);

INSERT INTO 
	courses(course_name, description, published_date)
VALUES
	('PostgreSQL for Developers','A complete PostgreSQL for Developers','2020-07-13'),
	('PostgreSQL Admininstration','A PostgreSQL Guide for DBA',NULL),
	('PostgreSQL High Performance',NULL,NULL),
	('PostgreSQL Bootcamp','Learn PostgreSQL via Bootcamp','2013-07-11'),
	('Mastering PostgreSQL','Mastering PostgreSQL in 21 Days','2012-06-30');

修改ID为3的数据

UPDATE courses
SET published_date = '2020-08-01' 
WHERE course_id = 3;

修改ID为2的数据,并返回修改后的内容

UPDATE courses
SET published_date = '2020-07-01'
WHERE course_id = 2
RETURNING *;

UPDATE JOIN

UPDATE product
SET net_price = price - price * discount
FROM product_segment
WHERE product.segment_id = product_segment.id;
要查看完整内容,请先登录