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 用于查询生成器。查询构建器本身准备和绑定语句时效率更高。

问题已回答