CREATE TABLE C(PRI_KEY INT, FLDA INT, FLDB INT, FLDC INT); INSERT INTO C VALUES(1,2,3,4); INSERT INTO C VALUES(11,21,31,41); INSERT INTO C VALUES(12,22,32,42); CREATE VIEW A AS SELECT PRI_KEY AS KEY, FLDA, FLDC FROM C; CREATE VIEW B AS SELECT PRI_KEY AS KEY, FLDB, FLDC FROM C; UPDATE A SET FLDA = FLDA * 10, FLDC = FLDC * 20 WHERE KEY = 1; UPDATE B SET FLDB = FLDB * 5, FLDC = FLDC * 25 WHERE KEY = 11;
能解释下吗?兄弟?我没看懂UPDATE A SET FLDA = FLDA * 10, FLDC = FLDC * 20 WHERE KEY = 1; UPDATE B SET FLDB = FLDB * 5, FLDC = FLDC *…
我刚一开始考虑trigger了,可是在避免触发器的相互触发中找不到好方法! 我的意识是:表a有1,2,3,4,5字段 表b有1,6,7,8,9字段合并成一个表c 字段为1,2,3,4,5,6,7,8,9 然后基于这个表建视图a select 1,2,3,4,5 from c 视图b:select 1,6,7,8,9 from c 这样就不用改原来连接a,b表的程序了! 我这个想法行吗?
create view as select t1.f1,t1.f2,t2.f1,t2.f2 from (select field1 f1,field2 f2,...,from tableA) t1,(select field1 f1,field2 f2,...,from tableA) t2 where ...;
--在A、B表上直接建立个V_C视图即可:
create view V_C as
select t1.f1,t1.f2,t2.f1,t2.f2
from (select field1 f1,field2 f2,...,from tableA) t1,
(select field1 f1,field2 f2,...,from tableA) t2
where ...;
create view V_C as
select t1.f1,t1.f2,t2.f1,t2.f2,...
from (select field1 f1,field2 f2,...,from tableA) t1,
(select field1 f1,field2 f2,...,from tableB) t2
where ...;
(select field1 f1,field2 f2,...,from tableB) t2 创建A或B表视图时,要写2表吗?
INSERT INTO C VALUES(1,2,3,4);
INSERT INTO C VALUES(11,21,31,41);
INSERT INTO C VALUES(12,22,32,42);
CREATE VIEW A AS SELECT PRI_KEY AS KEY, FLDA, FLDC FROM C;
CREATE VIEW B AS SELECT PRI_KEY AS KEY, FLDB, FLDC FROM C;
UPDATE A SET FLDA = FLDA * 10, FLDC = FLDC * 20 WHERE KEY = 1;
UPDATE B SET FLDB = FLDB * 5, FLDC = FLDC * 25 WHERE KEY = 11;
UPDATE B SET FLDB = FLDB * 5, FLDC = FLDC *…
因为我想建个视图A,B并且视图与表A,B的名字相同,即为C表建名字为A,B的视图,目的是不用改程序(A的程序连接A视图,B的程序连接B视图)就能改变C表!
我的意识是:表a有1,2,3,4,5字段
表b有1,6,7,8,9字段合并成一个表c 字段为1,2,3,4,5,6,7,8,9
然后基于这个表建视图a select 1,2,3,4,5 from c
视图b:select 1,6,7,8,9 from c
这样就不用改原来连接a,b表的程序了!
我这个想法行吗?
是不是A,B表的数据随时更新,然后不能及时同步到C表中?
1.不直接建两个视图关联A,B表,而要通过建立一个C表去关联呢?
2.C可以建成视图,不用建表。这样就不存在同步问题了?