MySQL - UPDATE/DELETE 時の Error:1175!
2012 年 2 月 4 日 0:20 | 405 Views | カテゴリー:PC_Tips, サーバ構築 | コメント(0) | 印刷
こんばんは。
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) にする必要はありません。
以上。
関連記事
タグ: MySQL
2012 年 2 月 4 日 0:20 | 405 Views | カテゴリー:PC_Tips, サーバ構築 | コメント(0) | 印刷



twitter
携帯端末のバーコードリーダで