mysql 触发器 要不要_mysql 触发器的使用(慎用)

本文介绍了在MySQL中使用触发器实现店铺积分统计的需求,包括表结构、触发器的创建与删除,以及触发器在不同操作(INSERT、UPDATE)中的逻辑。提醒读者触发器存在潜在问题,建议谨慎使用。
摘要由CSDN通过智能技术生成

【前言】最近有一个需求,店铺积分统计,每生成一条积分消费(赠送)日志记录,对应的店铺增加对应的剩余总积分和消费总积分,想了想觉得 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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值