我有一个数据库视图,它由连接 2 个基表组成,比如表 1、表 2。我想确保无论何时在视图上调用更新或插入,它只更新表 1 的列,并将表 2 的列保留为 NULL。是否可以?
问问题
96 次
1 回答
0
不,如果您想通过 db 视图更新或插入该视图,则应仅使用一张表创建该视图。请考虑下面的例子。
准备表格tab
和tab2
create table tab
(
id int
)
create table tab2
(
id int
)
准备表格vtab
和vtabboth
. 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 回答