您好,欢迎访问一九零五行业门户网

Yii2 框架自带的ActiveRecord 事务嵌套分析

activerecord 这个class文件update方法里面如何下:
public function update($runvalidation = true, $attributenames = null)
{ if ($runvalidation && !$this->validate($attributenames)) { yii::info('model not updated due to validation error.', __method__); return false; } if (!$this->istransactional(self::op_update)) { return $this->updateinternal($attributenames); } $transaction = static::getdb()->begintransaction(); try { $result = $this->updateinternal($attributenames); if ($result === false) { $transaction->rollback(); } else { $transaction->commit(); } return $result; } catch (\exception $e) { $transaction->rollback(); throw $e; }}

为什么update底层也用了事务操作,如果在外面也开启事务,事务嵌套,会造成什么影响?
回复内容: activerecord 这个class文件update方法里面如何下:
public function update($runvalidation = true, $attributenames = null)
{ if ($runvalidation && !$this->validate($attributenames)) { yii::info('model not updated due to validation error.', __method__); return false; } if (!$this->istransactional(self::op_update)) { return $this->updateinternal($attributenames); } $transaction = static::getdb()->begintransaction(); try { $result = $this->updateinternal($attributenames); if ($result === false) { $transaction->rollback(); } else { $transaction->commit(); } return $result; } catch (\exception $e) { $transaction->rollback(); throw $e; }}

为什么update底层也用了事务操作,如果在外面也开启事务,事务嵌套,会造成什么影响?
其它类似信息

推荐信息