2

次のクエリを実行しています。

        $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 は安全な更新モードをバイパスできるため、一般的に注意する必要がありますか?

4

0 に答える 0