Navicat for mysql 中 当表一数据更新后,自动更新表2数据
mysql,表1字段姓名金额日期表2字段姓名总金额表1为用户消费记录,表2为用户累计消费如:表1张三1002013-3-10张三1002013-3-20表2张三200当表...
mysql,表1字段姓名 金额 日期 表2字段 姓名 总金额
表1为用户消费记录,表2为用户累计消费
如:
表1
张三 100 2013-3-10
张三 100 2013-3-20
表2
张三 200
当表1新增张三的记录时,更新表2张三的消费总数值
当表1新增表2中没有的人时,则直接在表2中插入新纪录
如:
表1
张三 100 2013-3-10
张三 100 2013-3-20
李四 100 2013-3-21
表2
张三 200
李四 100 展开
表1为用户消费记录,表2为用户累计消费
如:
表1
张三 100 2013-3-10
张三 100 2013-3-20
表2
张三 200
当表1新增张三的记录时,更新表2张三的消费总数值
当表1新增表2中没有的人时,则直接在表2中插入新纪录
如:
表1
张三 100 2013-3-10
张三 100 2013-3-20
李四 100 2013-3-21
表2
张三 200
李四 100 展开
展开全部
看这个需求,使用两个触发器(在表一的after insert、after update上分别建立trigger)是个可行的解决方案,具体代码尽量搜一下自己写。这里给个after insert的思路性的代码:
drop trigger if exists abc;
CREATE TRIGGER abc AFTER INSERT ON 表一
FOR EACH ROW
BEGIN
declare svalue int;
select count(*) into svalue from 表二 where 表二.姓名 = new.姓名;
if svalue > 0 then
update 表二 set 消费总额=(select sum(消费额) from 表一 where 表一.姓名=new.姓名) where 表二.姓名 = new.姓名
else
insert 表二 ...;
end if;
END;
drop trigger if exists abc;
CREATE TRIGGER abc AFTER INSERT ON 表一
FOR EACH ROW
BEGIN
declare svalue int;
select count(*) into svalue from 表二 where 表二.姓名 = new.姓名;
if svalue > 0 then
update 表二 set 消费总额=(select sum(消费额) from 表一 where 表一.姓名=new.姓名) where 表二.姓名 = new.姓名
else
insert 表二 ...;
end if;
END;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |