MySQL触发器统计子表数量


关键词

MySQL 触发器 统计

摘要

本文介绍MySQL使用触发器来统计关联的子表的记录条数。
zaho_account表是账户总表,zaho_tihuo_code是关联的子表。在zaho_account表中有一个字段:a_code_used,表示该账号下有多少条code记录。

触发器代码如下:

-- 插入
DELIMITER //

DROP TRIGGER IF EXISTS `tihuo_code_insert`;
CREATE TRIGGER `tihuo_code_insert` AFTER INSERT ON `zaho_tihuo_code`
FOR EACH ROW BEGIN
    UPDATE `zaho_account` SET a_code_used=a_code_used+1 WHERE a_id=NEW.account_id;
END//


-- 删除
DELIMITER //

DROP TRIGGER IF EXISTS `tihuo_code_delete`;
CREATE TRIGGER `tihuo_code_delete` AFTER DELETE ON `zaho_tihuo_code`
FOR EACH ROW BEGIN
    UPDATE `zaho_account` SET a_code_used=a_code_used-1 WHERE a_id=OLD.account_id;
END//

-- 附赠一个把历史数据更新到a_code_used字段的SQL
UPDATE zaho_account a SET a_code_used=(select count(1) from zaho_tihuo_code where account_id=a.a_id)

关于MySQL触发器统计子表数量,本文就介绍这么多,希望对您有所帮助!


 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:MySQL触发器统计子表数量:http://www.splaybow.com/post/mysql-trigger-tongji-quantity-542.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« 设置MySQL使用utf8mb4编码来保存微信昵称中的表情符号