laravel 事务 vs 数据库语句
laravel transaction vs database statement
下面两个有什么区别:
DB::update(
'update users set votes = 0 where votes < 0'
);
DB::transaction(function () {
DB::table('users')->where('votes', '<' , 0)->update(['votes' => 0]);
});
官方 Laravel 文档说
The update method should be used to update existing records in the database
但是可以对异常做出反应的事务似乎很少。
那么在什么情况下一个比另一个好呢?
DB::update() 用于原始 sql 查询,另一方面 DB::table()->update 用于查询生成器。查询构建器本身准备和绑定语句时效率更高。
问题已回答
下面两个有什么区别:
DB::update(
'update users set votes = 0 where votes < 0'
);
DB::transaction(function () {
DB::table('users')->where('votes', '<' , 0)->update(['votes' => 0]);
});
官方 Laravel 文档说
The update method should be used to update existing records in the database
但是可以对异常做出反应的事务似乎很少。
那么在什么情况下一个比另一个好呢?
DB::update() 用于原始 sql 查询,另一方面 DB::table()->update 用于查询生成器。查询构建器本身准备和绑定语句时效率更高。
问题已回答