postgresql 视图

Posted 笑佛缘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql 视图相关的知识,希望对你有一定的参考价值。

一、创建视图

create or replace view vw_users as select * from users;

 

二、通过定义规则来更新视图

create rule vw_users_upd as on update to vw_users do instead update users set user_email=New.user_email;

update vw_users set user_email=‘[email protected]where id=1;

注意,经过测试在9.5以上的版本可以直接使用update更新,不需要创建规则,9.2版本是需要的。

 

三、instead of 和before/after的区别,

1、insert of只能处理行级别的触发器,例如对视图的增、删、改等,例如

create or replace function vw_users_insert_trigger()

returns trigger as $$

begin

insert into users values(new.id,new.user_name,new.password,new.user_email,new.user_mark);

return null;

end;

$$

language plpgsql;

create or replace trigger insert_vw_users_trigger

instead of insert on vw_users

for each row execute procedure vw_users_insert_trigger();

 

2、before/after是处理语句级别的触发器,示例可以参考触发器文章

以上是关于postgresql 视图的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 PostgreSQL 中部分刷新物化视图?

PostgreSQL 删除视图(如果存在)

PostgreSQL物化视图

Postgresql:如果视图被修改,则通知

PostgreSQL View(视图)

PostgreSQL View(视图)