【问题标题】:PHP/Laravel rolling back transaction later in time?PHP/Laravel 及时回滚事务?
【发布时间】:2014-08-01 10:20:57
【问题描述】:

有没有办法及时回滚事务?我想做一个函数,用户可以上传一个excel文件,然后将它包含的数据转换为sql插入事务中。如果出现错误,我可以回滚事务,但我也希望能够在用户想要的时候回滚。因此,基本上它是本节的 UNDO LAST SESSION/UPLOAD 函数。

我正在使用 PHP5.4、Laravel 4.2 和 MySQL5.5

【问题讨论】:

    标签: php mysql laravel-4 transactions rollback


    【解决方案1】:

    回滚是数据库操作中的一个技术术语;它具有与交易相关的精确含义。

    您打算做的事情听起来不像是回滚。这听起来像是删除行——在任意时间删除行。 (任意时间,因为上次会话可能是几小时、几天或几周前,对吧?)

    只要您知道涉及哪些键——这可能是一件简单的事情——你可以使用键删除行。无论 dbms 和 ORM 或 Web 框架如何,您都可以做到这一点。

    一般情况下的一个复杂情况是提交的行对其他事务可见。因此,其他事务(以及其他用户)可能会在外键引用中使用您的某些行。这将使删除行变得非常复杂。

    【讨论】:

    • 所以,在 MySQL 中没有自动的方法来做到这一点(我猜,在其他 DBMS 中也是如此)。如果可能,我需要保存 id-s 并手动删除这些行。嗯。
    猜你喜欢
    • 2020-02-18
    • 1970-01-01
    • 2021-03-20
    • 2020-06-05
    • 2013-05-13
    • 2014-01-30
    • 2012-09-12
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多