0

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

4

1 回答 1

0

不,如果您想通过 db 视图更新或插入该视图,则应仅使用一张表创建该视图。请考虑下面的例子。

准备表格tabtab2

create table tab
   (
      id int
   )

    create table tab2
   (
      id int
   )

准备表格vtabvtabboth. vtabboth有一个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)

波纹管插件

   insert into vtabboth
   values (1,1)

会报错:

视图“vtabboth”不可更新,因为 FROM 子句命名了多个表。

于 2013-07-24T06:40:20.107 回答