gpt4 book ai didi

postgresql - 如何在 View 上编写简单的更新规则,该规则仅将给定更新转发到 View 所代表的表

转载 作者:行者123 更新时间:2023-11-29 12:38:08 24 4
gpt4 key购买 nike

我得到了表a

CREATE TABLE test (
id SERIAL,
name character varying NOT NULL,
PRIMARY KEY (id)
);

一个 View

CREATE VIEW TEST_VIEW AS
SELECT id,name
FROM test;

只想将给定的更新队列转发到 View 后面的实际表

CREATE RULE TEST_VIEW_UPDATE
AS ON UPDATE TO TEST_VIEW
DO INSTEAD UPDATE TEST;

但是这种方法会导致错误,因为 SET 语句可能丢失了。我怎样才能以最通用的方式(因此对实际更新的内容没有限制)正确地做到这一点?

最佳答案

在 PostgreSQL 9.3 上,这将自动运行且无需更改。 PostgreSQL 将默认创建可更新的简单 View 。

在以前的版本中,在 UPDATE 中指定所有列。没有通配符。

如果您使用的是 9.1 或更高版本(您应该在每个问题中始终提及 - select version()),您应该使用 INSTEAD OF View 触发器而不是一条规则。

关于postgresql - 如何在 View 上编写简单的更新规则,该规则仅将给定更新转发到 View 所代表的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18561003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com