我有一个数据库视图,它由连接2个基表组成,比如表1,表2。 我想确保在视图上调用时,无论何时,更新或插入,它只更新表1的列,并将表2的列保留为NULL。 有可能吗?
答案 0 :(得分:0)
不,如果要通过数据库视图更新或插入,则应使用仅一个表创建视图。请考虑以下示例。
准备表格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)
Bellow insert
insert into vtabboth
values (1,1)
会出现错误:
视图'vtabboth'不可更新,因为FROM子句名称 多个表格。