向视图插入时,是根据条件,从一个表取连接列的值复给另一个表,整个记录的值又是如何插入的呢?
8 个解决方案
#1
create view myview(col1,col2)
as
select a.col1,b.col2 from a,b where a.col1=b.col1
---------------
插入的时候
insert into myview(col1,col2) values('001','zhangsan');
as
select a.col1,b.col2 from a,b where a.col1=b.col1
---------------
插入的时候
insert into myview(col1,col2) values('001','zhangsan');
#2
create view myview(col1,col2)
as
select a.col1,b.col2 from a,b where a.col1=b.col1
create trigger a_bInsert instead of insert on myview
declare
v_col a.col1%type;
begin
----col1 能唯一标示 a 的一列
select col1 into v_col from a where col1 = :new.col1;
update b set col1=v_col where col2 = :new.col2;
end;
建立完替代触发器后可以插入试图
---------------
插入的时候
insert into myview(col1,col2) values('001','zhangsan');
as
select a.col1,b.col2 from a,b where a.col1=b.col1
create trigger a_bInsert instead of insert on myview
declare
v_col a.col1%type;
begin
----col1 能唯一标示 a 的一列
select col1 into v_col from a where col1 = :new.col1;
update b set col1=v_col where col2 = :new.col2;
end;
建立完替代触发器后可以插入试图
---------------
插入的时候
insert into myview(col1,col2) values('001','zhangsan');
#3
在这里,你update b set col1=v_col where col2 = :new.col2;
它是如何把记录分别插入两个表的呢?
它是如何把记录分别插入两个表的呢?
#4
up
#5
其实,应该是只INSERT了B表,没有INSERT A表。
#6
我觉得应该两个表同时更新呀,但却没有体现出来。是我理解错了吗?
#7
help
#8
???
#1
create view myview(col1,col2)
as
select a.col1,b.col2 from a,b where a.col1=b.col1
---------------
插入的时候
insert into myview(col1,col2) values('001','zhangsan');
as
select a.col1,b.col2 from a,b where a.col1=b.col1
---------------
插入的时候
insert into myview(col1,col2) values('001','zhangsan');
#2
create view myview(col1,col2)
as
select a.col1,b.col2 from a,b where a.col1=b.col1
create trigger a_bInsert instead of insert on myview
declare
v_col a.col1%type;
begin
----col1 能唯一标示 a 的一列
select col1 into v_col from a where col1 = :new.col1;
update b set col1=v_col where col2 = :new.col2;
end;
建立完替代触发器后可以插入试图
---------------
插入的时候
insert into myview(col1,col2) values('001','zhangsan');
as
select a.col1,b.col2 from a,b where a.col1=b.col1
create trigger a_bInsert instead of insert on myview
declare
v_col a.col1%type;
begin
----col1 能唯一标示 a 的一列
select col1 into v_col from a where col1 = :new.col1;
update b set col1=v_col where col2 = :new.col2;
end;
建立完替代触发器后可以插入试图
---------------
插入的时候
insert into myview(col1,col2) values('001','zhangsan');
#3
在这里,你update b set col1=v_col where col2 = :new.col2;
它是如何把记录分别插入两个表的呢?
它是如何把记录分别插入两个表的呢?
#4
up
#5
其实,应该是只INSERT了B表,没有INSERT A表。
#6
我觉得应该两个表同时更新呀,但却没有体现出来。是我理解错了吗?
#7
help
#8
???