与oracle不同,pg可以创建临时视图
create temp view vw_class as select * from pg_class;
创建完后,在别的会话中是无法查看该视图的,这个会话退出后,这个视图的定义也被清除掉了
可更新视图
create table test as select * from pg_class;
select * from v_test;
create view v_test as select * from test;
需要创建规则来使视图可更新
create or replace rule r_test as on update to v_test do instead update test set relname=new.relname where relnamespace=new.relnamespace;
同理插入,删除都需要创建规则
删除
create rule vm_del as on delete to vw_test do instead delete from test where id=old.id;