mysql:表C由表A、表B关联生成,表A、表B数据变化后通过触发器将变化后记录插入到表C中,小白提问,最好是有大神给个demo
用视图不是更好么?写一条sql查询表A和表B得关联查询,表A和表B数据变化,视图自动发生变化,要数据直接从视图查询就行了,还不用维护触发器。
要将c表同步到其他库,如果有办法在视图使用指针,然后取出来赋给c表也行,数据小白不知道怎么操作,可不可以操作,所以请教各路大神
有些想法仅供参考
这里有表A,B,C
表A数据:a
表B:b
表C:a,b
CREATE TRIGGER chage_a after update FOR EACH ROW //给A加
begin
DECLARE A_a VARCHAR(20) character set utf8; //定义变量,可指定默认值,
DECLARE B_b VARCHAR(20) character set utf8;
A_a=NEW.a //new是触发事件update的,代表将要或者已经改变的数据
select b as d from B where.......//这里要加条件 ,是你关联表的条件,比如说你是通过两个表相同的id生成的a,b,就那个意思了
B_b = d //额这里这样赋值不知道对不对哈,我也很久没写了,可以查一下
INSERT INTO C(a,b) values(A_a,B_b);
end
CREATE TRIGGER chage_b after update FOR EACH ROW //给B加
DECLARE A_a VARCHAR(20) character set utf8; //定义变量,可指定默认值,
DECLARE B_b VARCHAR(20) character set utf8;
B_b=NEW.b //new是触发事件update的,代表将要或者已经改变的数据
select a as d from A where.......//这里要加条件 ,是你关联表的条件,比如说你是通过两个表相同的id生成的a,b,就那个意思了
A_a = d //额这里这样赋值不知道对不对哈,我也很久没写了,可以查一下
INSERT INTO C(a,b) values(A_a,B_b);
begin
end
这个原理呢就是说,比如A中变了,就取出A中改变的数据和B中与A相关联的数据,将它们插入表C
对于B表也一样
这样应该能达到你的要求,希望有用