mysql触发器的使用

语法:

create trigger 触发器名 before(或者after) update(或者delete或者insert)on 数据库表名
for each row(固定结构)
begin
  sql语句
end 

实例:

复制代码

  create trigger calculate_fileSize after update on dps_task

 for each row

BEGIN
IF new.is_finish = 1 and new.doc_type = 379 THEN
           UPDATE dps_resource SET filesize = (SELECT SUM(filesize) 
           from dps_resource_associate dra WHERE dra.resource_id = 
           new.resource_id and dra.uri like "%/pic/%") WHERE 
           dps_resource.id = new.resource_id;
ELSEIF new.is_finish = 1 and new.doc_type <> 51 THEN
           UPDATE dps_resource SET filesize = (SELECT SUM(filesize) 
           from dps_resource_associate dra WHERE dra.resource_id = 
           new.resource_id and dra.uri like "%/origpic/%") WHERE 
           dps_resource.id = new.resource_id;
END IF;
END;        
复制代码

new: 指的是sql中更新后的那条数据

old:指的是sql中更新前的那条数据

如果事件是delete,则只有old没有new。如果事件是insert, 则只有new没有old,否则会报错。

    

posted @   曹伟666  阅读(77)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示