仅在1个基表中更新数据库已加入视图

时间:2013-07-24 05:29:03

标签: sql database join views sybase

我有一个数据库视图,它由连接2个基表组成,比如表1,表2。 我想确保在视图上调用时,无论何时,更新或插入,它只更新表1的列,并将表2的列保留为NULL。 有可能吗?

1 个答案:

答案 0 :(得分:0)

不,如果要通过数据库视图更新或插入,则应使用仅一个表创建视图。请考虑以下示例。

准备表格tabtab2

create table tab
   (
      id int
   )

    create table tab2
   (
      id int
   )

准备表格vtabvtabbothvtabboth有一个join

   create view vtab
   as
   select * from tab

   create view vtabboth
   as
   select t.id as tid ,t2.id as t2id from tab t
   join tab2 t2 on t.id = t2.id   

下面的插入工作

   insert into vtab
   values (1)

Bellow insert

   insert into vtabboth
   values (1,1)

会出现错误:

  

视图'vtabboth'不可更新,因为FROM子句名称   多个表格。