MySQLWorkBenchでUPDATE実行時に1175エラーが発生する。

なんの変哲もないUPDATE文をMySQLWorkbenchで実行しようとしたら怒られた。

MySQLWorkBenchでUPDATE実行しようとすると以下のようなエラーが表示された。

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.

Google翻訳に通すと

安全な更新モードを使用していて、KEY列を使用するWHEREなしでテーブルを更新しようとしました。セーフモードを無効にするには、[設定]-> [SQLエディター]でオプションを切り替えて再接続します。

だそうです。

Safe update modeというものが有効になっているため、キーを条件に入れたWHERE句を指定しないと更新できないようになっているようです。誤って大量データを更新してしまわないようにMySQLWorkbench側で制御しているわけですね。

ただこのままではUPDATE文を実行できません。UPDATEを実行できるようにするためには、以下の手順でSafe update modeを無効化します。

エラー解消手順

・[Edit] -> [Preferences]よりWorkbench Preferences画面を開く。
・[SQL Editor]をクリックすると表示される画面で[“Safe Updates". Forbid UPDATEs and DELETEs with no key in WHERE clause or no LIMIT clause. Requires a reconnection.]のチェックを外します。
・[OK]をクリックしてウィンドウを閉じ、DBに再接続することで設定が適用されます。
・UPDATE文を実行!

これで1175エラ−を回避し、キーを条件に含まないUPDATE文を実行することができます。

ただし、Safe update modeを無効にするということは、誤って大量データを更新するUPDATE文を実行してしまうリスクが高まるということになりますので、実行はくれぐれも慎重に。
目的にクエリを実行し終わったら戻しておくのもいいですね。

おしまい。