mysql 触发器的使用(慎用)
【前言】最近有一个需求,店铺积分统计,每生成一条积分消费(赠送)日志记录,对应的店铺增加对应的剩余总积分和消费总积分,想了想觉得 mysql 触发器不错mysql触发器,然后尝试写了一个。注意,触发器基于诸多原因,请慎用或不用。 至于相关原因,请自行百度 触发器的弊端。 1. 表结构准备 表1 日志表 字段1 ID 字段2 使用类型(1增加2消费) 字段3 积分数 字段4 店铺ID 字段5 时间戳 score_log id score_type score_num shop_id create_at 表2 店铺积分总表 字段1 ID 字段2 店铺ID 字段3 店铺剩余可用积分 字段4 店铺已消费总积分 shop_score id shop_id left_score use_score 2. 需求说明 的每生成一条 score_log 日志记录 1)如果 shop_score 中存在shop_id 为新score_log 日志中的shop_id 那接下来更新 如果不存在 则先插入一条 shop_id 为新score_log 日志中的shop_id 其他值为0 的初始记录 然后再更新 2) 更新规则 1> score_log 中 使用为消费类型 score_type = 2 shop_score 中 left_score = left_score - score_log.score_num use_score = use_score + score_log.score_num 2>score_log 中 使用为赠送类型 score_type = 1 shop_score 中 left_score = left_score + score_log.score_num 3. 知识 储备 1)触发器的使用
【注意】mysql 触发器对应每张表 仅能添加一个触发器 且 INSERT 中仅能使用 NEW 关键字 UPDATE 可以使用 NEW|OLD DELETE 可以使用 OLD 代替 表名 获取相应的数据 4. 实现上述需求
5. 更多 请参看官方文档 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |