在PostgreSQL中使用视图将行插入到表中

rxztt3cl  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(3)|浏览(154)

我创建了一个名为viewex的表:

  1. CREATE TABLE viewex (
  2. sno INTEGER,
  3. name VARCHAR(30),
  4. email VARCHAR(30),
  5. address VARCHAR(50),
  6. contact VARCHAR(30)
  7. );

字符串
已将数据插入表中。
现在我只想插入3列数据(姓名,地址,联系人):

  1. INSERT INTO viewex (name, address, contact)
  2. VALUES ('celcabs', 'good', 'bad');


现在的问题是....是否可以为查询创建视图

  1. INSERT INTO viewex (name, address, contact)
  2. VALUES ('celcabs', 'good', 'bad');

mznpcxlj

mznpcxlj1#

从PostgreSQL 9.3开始,你可以插入和更新“简单视图”:http://www.postgresql.org/docs/9.3/static/sql-createview.html

xggvc2p6

xggvc2p62#

你要找的是updatable view,而postgresql并不直接支持它们。
你可以使用CREATE RULE来获得这个效果-这个页面有关于如何获得一个可更新视图的效果的信息。

xkftehaa

xkftehaa3#

您可以将行插入到带有视图的表中。* My post详细解释了视图。
例如,创建person表,如下所示:

  1. CREATE TABLE person (
  2. id INTEGER,
  3. first_name VARCHAR(20),
  4. last_name VARCHAR(20),
  5. age INTEGER
  6. );

字符串
然后,将两行插入person表,如下所示:

  1. INSERT INTO person (id, first_name, last_name, age)
  2. VALUES (1, 'John', 'Smith', 27), (2, 'David', 'Miller', 32);


然后,调用person得到如下结果:

  1. postgres=# SELECT * FROM person;
  2. id | first_name | last_name | age
  3. ----+------------+-----------+-----
  4. 1 | John | Smith | 27
  5. 2 | David | Miller | 32
  6. (2 rows)


然后,创建my_v视图,如下所示:

  1. CREATE VIEW my_v AS
  2. SELECT first_name, age FROM person;


现在,您可以使用my_vperson表插入2行,如下所示。* idlast_name不可用:

  1. INSERT INTO my_v (first_name, age)
  2. VALUES ('Robert', 18), ('Mark', 40);


然后,将2行插入person表,如下所示:

  1. postgres=# SELECT * FROM person;
  2. id | first_name | last_name | age
  3. ----+------------+-----------+-----
  4. 1 | John | Smith | 27
  5. 2 | David | Miller | 32
  6. | Robert | | 18
  7. | Mark | | 40
  8. (4 rows)

展开查看全部

相关问题