我有一个 perl 脚本,其中 DBI 按顺序对 MySQL 数据库中的多个表执行各种 DML 操作。
我在我的 perl 脚本中使用 dbh->begin_work
和 eval
实现了交易。现在,我运行我的脚本一次,一段时间后我再次运行它,从而向我的数据库发起两个事务。这时,我第二次运行脚本,第一个事务已经完成了对第五个表的操作,而我的第二个事务甚至还在等待对第一个表进行操作。
我能否让脚本并行执行,以便第二个事务能够在第一个事务先于它工作时对第一个表执行操作?
最佳答案
每个数据库都有自己的事务隔离级别。阅读类似这篇文章的内容:http://www.oracle.com/technetwork/issue-archive/2005/05-nov/o65asktom-082389.html
因此,由于同时运行的事务之间的竞争条件,每个事务都可能被锁定和/或放弃。
并阅读 http://search.cpan.org/~timb/DBI-1.636/DBI.pm#Transactions无论如何都要使用 RaiseError 的章节。
关于mysql - Perl DBI - 并行事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45433920/