職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

不良のUPDATEやDELETEを防ぐ

2015年04月27日 | mySQL

不良のUPDATEやDELETEを防ぐ

業務でmysqlを使う場合、本当にカラムの内容を一気に変更することもありますが、それほど頻繁に行うことはありません。うっかり、すべてのカラムを同じ値にする事故があっては困るので

この様な事故を防ぐ為に、MYSQLモニタを起動した時に「--safe-updates」オプションを付ける方法があります。このオプションを付けると、一意のカラムに対するWHEREの条件がないとUPDATEやDELETEが実行出来なくなる。

初心者向の機能

--safe-updatesオプションを使用するとき、mysqlは MySQL サーバーに接続した際以下のステートメントを発行します。

1)mysql>SET sql_safe_updates=1と,SETステートメントを発行する。
2)my.cnf で#safe-updatesを外す
[mysql]
safe-updates
  • UPDATEDELETE ステートメントは、WHERE 節内でキー制限を特定するか、LIMIT 節を提供するか (あるいは両方) しないかぎり、実行は許容されません。例 :

    UPDATE tbl_name SET not_key_column=val WHERE key_column=val;
    UPDATE tbl_name SET not_key_column=val LIMIT 1;
    

[MySQL] --safe-updates オプションを無効にするAdd Star

 症状

mysql> UPDATE ... WHERE col1 like "%8";
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

like を含む UPDATE 文で ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column というエラーが発生した。


などと設定されていて --safe-updates オプションが適用されている。

 

 対策

設定ファイルを編集できないなら、次のコマンドを入力する。

mysql> SET SQL_SAFE_UPDATES=0;

または次のように起動する。

mysql -ufoo -p --safe-updates=false dbname

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« JSPとサーブレットの連携 | トップ | 複数のテーブル結合 »
最新の画像もっと見る

コメントを投稿

mySQL」カテゴリの最新記事