Laravel中mysql事务的读取保证

Laravel中mysql事务的读取保证,mysql,laravel,pdo,transactions,locking,Mysql,Laravel,Pdo,Transactions,Locking,是否可以保证在以下Larave代码中,$last和$first的负数是插入值的精确计数 $this->tempPage->getConnection()->transaction(function() use($insertables, &$importedCount, $userId){ $first = $this->pageModel->getConnection()->getPdo()->lastInsertId(); $this-&

是否可以保证在以下Larave代码中,
$last
$first
的负数是插入值的精确计数

$this->tempPage->getConnection()->transaction(function() use($insertables, &$importedCount, $userId){

$first = $this->pageModel->getConnection()->getPdo()->lastInsertId();

$this->pageModel->newQuery()->getQuery()->insert($insertables);

$last = $this->pageModel->getConnection()->getPdo()->lastInsertId();

$importedCount = $last - $first;
}))


换句话说,每当执行读取查询时,MySql事务中的表是否会被锁定?

否,因为不能保证自动增量字段是连续的-如果您在使用复制的服务器上,自动增量值可能会增加两个、三个或更多。谢谢,您对计算插入字段的建议是什么?表是否在事务中被锁定?我的意思是,当我第一次在一个事务中获取last_insert_id,另一个会话插入一个新数据时,当我再次获取该数据时,值是相同的还是不同的?执行一个原始查询,只调用
ROW_COUNT()
函数,
last_insert_id()
为当前会话提供上次插入的if,因此否,它不会被其他会话上的其他事务覆盖