mysql - 如何使用一个触发器执行多个操作
问题描述
我想将它们组合为一个触发器。我创建第一个查询,然后创建第二个。但它说有多个触发器具有相同的动作。我的问题是如何将它们结合起来。
CREATE trigger deletePostsAfterDeleteUser before delete on
tblusers for each row delete from tblposts where tblposts.userId = old.userId
CREATE trigger deleteReportsAfterDeleteUser before delete on
tblusers for each row delete from tblreports where tblreports.userId = old.userId
解决方案
使用begin
和end
:
create trigger deletePostsAfterDeleteUser before delete on
tblusers
for each row
begin
delete from tblposts where tblposts.userId = old.userId;
delete from tblreports where tblreports.userId = old.userId;
end;
但是,这种类型的操作表明您确实需要级联约束,而不是触发器。
推荐阅读
- tensorflow - 具有优势类的语义分割
- php - 在连接列上的位置慢查询
- r - 如何计算R中表格的提升值?
- html - 如何选择每两个/三个子元素或兄弟元素并应用样式?
- linq - 转换为值类型“System.Int32”失败,因为具体化值为 null
- javascript - 在 flatpickr 范围日历上禁用悬停功能
- verilog - 对于非阻塞语句,begin end 和 fork join 有什么区别?
- c# - 使用 DataBinding 将一个数据库文本拆分为 3 个文本框
- java - 未找到媒体类型 REST API 的 MessageBodyWriter
- laravel - Laravel 本地化中间件导致 ERR_TOO_MANY_REDIRECTS