【MySQL】UPDATEでエラー1175が発生した時の対処方法


ここではMySQLで、UPDATEでエラー1175が発生した時の対処方法にする方法を紹介しています。

UPDATEでエラー1175が発生した時の対処方法

事象

今回エラーが発生したのは、ワークベンチから主キー項目の無いテーブルに対して、次のような一括更新系のUPDATE文を実行した時でした。

UPDATE tab1 SET age = 50;

ちなみに同じように一括削除のDELETEもエラーとなりました。

DELETE FROM tab1;

エラーの内容は次の通りでした。

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.	0.000 sec

ちなみにTRUNCATE文は実行できました。

TRUNCATE TABLE tab1;

原因

ワークベンチのデフォルト設定で「sql_safe_updates」が1となっていることが原因でした。

「sql_safe_updates」というのは、キー項目を指定していないUPDATE/DELETE文の実行を制限する設定のようです。

対処方法

次のように「sql_safe_updates」を0に更新することで解決することが出来ます。

SET sql_safe_updates=0;

また、ワークベンチのデフォルト値を変更することもできます。
ワークベンチの設定はEdit>Preferences>SQL Editorの一番下にある「Safe Updates」のチェックを外して再接続します。