gpt4 book ai didi

php - Laravel:如果您不提交或回滚您手动启动的事务怎么办?

转载 作者:行者123 更新时间:2023-12-04 03:29:21 35 4
gpt4 key购买 nike

我最近开始使用 PHP/Laravel(我使用 Java 已有 15 年以上)。我在代码库中注意到这段代码:

public function doSomeStuffInDb() {
DB::beginTransaction();
// Some db calls here
DB::commit();
}

我已经在文档中发现正确的方法是使用 DB::transaction 和一个包含数据库调用的闭包。

但是我想知道在DB::commit() 调用之前调用数据库时出现异常会发生什么?我假设没有任何东西会存储在数据库中,因为你不提交,但它会产生进一步的后果吗(数据库行锁?)?离开函数时交易会不会中止?

最佳答案

任何尚未提交或回滚的事务都可能具有脏读、不可重复读、幻读以及您在 java 中实现的所有其他注意事项的相同危险。

意思——即使锁定是在行级别完成的,查询作为非锁定一致读取运行,您最终会产生很多进一步的后果。锁的处理取决于您的数据库设置,有时它们会超时,有些则保留它们。

关于php - Laravel:如果您不提交或回滚您手动启动的事务怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37743093/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com