MySQL - UPDATE/DELETE 時の Error:1175!
Updated:
MySQL を GUI で管理・操作できるツール MySQL Workbench でのエラーについての対処メモです。 ※MySQL 自体の設定の問題なので、MySQL Workbench に限った話でもありませんが。
MySQL Workbench 上で UPDATE や DELETE の SQL 文を実行する際に、エラーとなる場合があります。
記録
現象
次のような SQL 文を実行。 ※実行環境:WindowsXP(SP3) + MySQL 5.5.20 + MySQL Workbench 5.2.37
DELETE FROM hoge WHERE fuga >= 100;
出力されるエラーは以下のとおり。
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 -> Query Editor and reconnect.
原因
主キーを使用せずに UPDATE や DELETE を実行するのは危険なので、標準では使用できないような設定になっているからです。 ※古いバージョンの MySQL をインストールしている Linux サーバでは、このような現象になった記憶がありません。標準で、主キーを使用せずに UPDATE や DELETE を実行できる設定になっているようです。
対処
MySQL Workbench 上での GUI 的な対処方法です。 (エラーメッセージに出力されている方法そのままです。) 1.メニューから「Edit」−「Preferences」を選択して画面を開く。
2.「SQL Editor」タブを開き、「Query Editor」の “Safe Updates”, Forbid UPDATEs …. という項目のチェックを外す。
3.MySQL Workbench を再起動する。
その他
以下のような SQL 文を実行して、直接 VARIABLES の値を変更する(OFFにする)方法もあります。
SET SQL_SAFE_UPDATES=0;
SQL_SAFE_UPDATES が 1 (ON) になっていれば、今回のような 1175 エラーは発生しませんが、MySQL を再インストールしたりした場合には、対処が必要です。 もちろん、きちんと主キーで指定して UPDATE, DELETE するなら、SQL_SAFE_UPDATES を 0 (OFF) にする必要はありません。
以上。
Comments