【问题标题】:MySQL Trigger with transaction insert or update带有事务插入或更新的 MySQL 触发器
【发布时间】:2012-12-11 15:34:19
【问题描述】:

我正在使用 mysql db & java,所以在我的应用程序中我需要使用触发器,但我需要在插入或更新时保存它。 当在表 A 中插入新记录时,触发器会在另一个表 B 中插入一些信息。 在对表 A 中的记录进行更新时,触发器也会更新表 B 的记录。

如果事务在 update 或 insrt 回滚期间,这是否会回滚触发器所做的任何更改。??!!

【问题讨论】:

    标签: mysql percona


    【解决方案1】:

    是的,如果事务被回滚,触发器所做的工作也将被回滚(除非您在触发器内部对事务范围进行了一些调整以专门防止这种情况)

    【讨论】:

    • 以及如何进行该操作以防止触发器完成的工作被回滚?
    • @MatijaNalis - 好问题,实际上看起来你不能在 MySQL 中进行嵌套事务,但如果你真的想的话,你可以用保存点完成类似的事情。我很好奇您为什么要这样做 - 根据我的经验,这样做的用例非常有限。
    • 我试图让some logs 了解尝试的(成功和失败的)交易。由于无法在回滚过程中保留数据,我只能记录成功的事务。
    • @MatijaNalis - 是的,这也是我曾经需要此功能的一个用例。在我的例子中,我在 MsSQL 服务器上使用 C# 和 DTC,但看起来 MySQL 中可能不提供该功能。
    猜你喜欢
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 2016-10-13
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多