2013年11月25日月曜日

MySQLのエラー「Error Code: 1175」の対処方法

MySQLにてSQLで一括置換をし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 Queries and reconnect.

メモとしてこのエラーの原因と対処方法を記載したいと思います。

目次

  1. 前提条件
  2. 原因
  3. 対応方法
  4. 参考文献

前提条件

  • MySQL 5.5.XX
  • Windows XP

原因

原因はMySQLの接続するクライアントの設定項目「SQL_SAFE_UPDATES」が1になっている為です。
MySQLのリファレンスマニュアルに以下の様な記載があります。

SQL_SAFE_UPDATES = {0 | 1}

もし1に設定すると、MySQL は WHERE 条項か LIMIT 条項内でキーを利用しない UPDATE か DELETE ステートメントを異常終了します。これは、キーが正しく利用されずその為に多数の行を変更、または削除する UPDATE か DELETE ステートメントをキャッチする事を可能にします。デフォルト値は0です。

対応方法

SQLを発行出来る環境から以下のコマンドで対応出来ます。

SET SQL_SAFE_UPDATES = 0;

後は以下の様なSQLで一括置換を行えばOKです。

update test set hoge = replace(hoge,'ab','12');

参考文献

Written By : // 16:56
Category:

0 コメント:

コメントを投稿

 

About

このブログは筆者の備忘録として色々記載しています。
Powered by Blogger.