create table tbl1
( rollnumber int,
name varchar) ;
insert into tbl1 values(1,'abc');
insert into tbl1 values(2,'def');
insert into tbl1 values(3,'ghi');
create view view1 as select * from tbl1;
delete from view1 where rollnumber=2;
postgres=# SELECT * FROM person;
id | first_name | last_name | age
----+------------+-----------+-----
1 | John | Smith | 27
2 | David | Miller | 32
3 | Robert | Brown | 18
4 | Mark | Davis | 40
(4 rows)
型 然后,创建my_v视图,如下所示:
CREATE VIEW my_v AS
SELECT first_name, age FROM person;
postgres=# SELECT * FROM person;
id | first_name | last_name | age
----+------------+-----------+-----
1 | John | Smith | 27
3 | Robert | Brown | 18
(2 rows)
2条答案
按热度按时间whitzsjs1#
从9.3版开始,视图在PostgreSQL中是可更新的。
参考文档:http://www.postgresql.org/docs/9.3/static/sql-createview.html(查找“可更新的视图”)以了解视图必须满足的条件才能“可更新”。
一个非常简单的例子:
字符串
工作演示:http://sqlfiddle.com/#!15/22 c2f/1
1bqhqjot2#
您可以使用视图从表中删除行。* My post详细解释了视图。
例如,创建
person
表,如下所示:字符串
然后,将4行插入
person
表中,如下所示:型
然后,调用
person
得到如下结果:型
然后,创建
my_v
视图,如下所示:型
现在,您可以使用
my_v
从person
表中删除2行,如下所示。*id
和last_name
不可用:型
然后,从
person
表中删除2行,如下所示:型