Sql 我们需要多次公开交易还是只需要一次?

Sql 我们需要多次公开交易还是只需要一次?,sql,transactions,Sql,Transactions,在python或laravel php中使用哪种方法更好?或者,只要我们使用事务、提交、回滚概念,使用哪种技术都无所谓 --方法1-- open transaction execute sql code 1 commit or rollback execute sql code 2 commit or rollback close transaction open transaction execute sql code 1 commit or rollback close tr

在python或laravel php中使用哪种方法更好?或者,只要我们使用事务、提交、回滚概念,使用哪种技术都无所谓

--方法1--

open transaction

execute sql code 1
commit or rollback

execute sql code 2
commit or rollback

close transaction
open transaction
execute sql code 1    
commit or rollback
close transaction

open transaction
execute sql code 2    
commit or rollback
close transaction
--方法2--

open transaction

execute sql code 1
commit or rollback

execute sql code 2
commit or rollback

close transaction
open transaction
execute sql code 1    
commit or rollback
close transaction

open transaction
execute sql code 2    
commit or rollback
close transaction

事务是一种原子操作,意味着它可以完全成功,也可以完全失败。
当您有两个或多个相互依赖的语句时,您可以使用事务处理—例如,如果您有一个销售数据库,并且希望添加一个包含项目的订单,通常,您将使用单个事务添加订单及其所有项目-因此,如果您未能插入项目,则整个订单将不会插入到数据库中

如果语句是独立的,则根本不需要显式事务


顺便说一句,您只能提交或回滚一次事务,因此第一个示例中的伪代码将失败,因为您尝试提交/回滚同一事务两次。

这取决于您想做什么。两者是不同的。值得注意的是,如果code2失败,那么code1影响的更改会发生什么情况?假设code1、code2是独立的,没有依赖性…谢谢@zohar peled