我想在同一张表上创建更多触发器
Posted
技术标签:
【中文标题】我想在同一张表上创建更多触发器【英文标题】:I want to create more triggers on the same table 【发布时间】:2011-03-07 17:02:40 【问题描述】:我有 2 个表要在插入、更新或删除时同步 我可以在同一张表上创建多个触发器吗?
我已经写了这样的代码..但是它不起作用..但是当我只创建一个触发器时它可以正常工作。
代码是这样的:
在插入照片之前创建触发照片插入 每一行开始 插入到 old_photo 集 PhotoID = NEW.photo_id, photo_original = NEW.file_name ; 结束;
分隔符 |
在更新照片之前创建触发照片更新 每一行开始 更新 old_photo SET photo_original = NEW.file_name 在哪里 PhotoID = NEW.photo_id ; 结束;
分隔符 |
在删除照片之前创建触发照片删除 每一行开始 从 old_photo 中删除 PhotoID = OLD.photo_id ; 结束;
请问有解决办法吗?
【问题讨论】:
【参考方案1】:将所有代码放入单个触发器中。 您可以在 BEGIN 和 END 之间使用多个语句
【讨论】:
感谢 Nakti,我尝试这样做,但失败了。但我找到了解决方案..我所做的只是删除分隔符和 BEGIN ,结束代码将是这样的:在插入照片之前创建触发器照片插入每行插入 old_photo SET PhotoID = NEW.photo_id, photo_original = NEW.file_name ;在每行更新照片之前创建触发照片更新 old_photo SET photo_original = NEW.file_name WHERE PhotoID = NEW.photo_id ; CREATE TRIGGER photosdelete BEFORE DELETE ON 照片 FOR EACH DELETE FROM old_photo WHERE PhotoID = OLD.photo_id ;以上是关于我想在同一张表上创建更多触发器的主要内容,如果未能解决你的问题,请参考以下文章