ここでは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」のチェックを外して再接続します。