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
展开
 我来答
gwbnet
2013-03-13 · TA获得超过894个赞
知道小有建树答主
回答量:350
采纳率:100%
帮助的人:223万
展开全部
看这个需求,使用两个触发器(在表一的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;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式