次のクエリを実行しています。
$sql ='UPDATE
Atable A INNER JOIN
Btable B ON A.name=B.name
SET
A.field=1
WHERE
B.field="wrong"; ';
B.field はキー列ではありません。Workbench はエラーで正しく停止します:
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
しかし、Laravel Eloquent で上記のクエリを実行すると、次のようになります。
$affected = DB::update(DB::raw($sql2));
クエリが実行されるので、Eloquent からの安全な使用方法はありますか? それとも、Eloquent は安全な更新モードをバイパスできるため、一般的に注意する必要がありますか?