今回は「MySQL Workbenchでセーフモードを解除する方法」について、わかりやすく解説していきます!

MySQL Workbenchを使っていて、「セーフモードなのでUPDATEやDELETEができない!」と困った経験はありませんか?

これは初心者だけでなく、ベテランでもちょっと戸惑う設定です。
でも安心してください。セーフモードは設定で簡単に解除できます。


セーフモードって何?

まずは用語の確認から。

セーフモードとは?

WHERE句なしでのDELETEやUPDATEをブロックする安全機能です。

たとえば、次のようなSQLを間違って実行してしまったとき:

DELETE FROM users;

これ、全件削除してしまいますよね?
セーフモードが有効だと、こういった危険な操作を防止してくれるのです。


どんなエラーが出る?

セーフモードでブロックされると、こんなメッセージが表示されます。

Danger

This isError Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column



セーフモードを解除する2つの方法

方法①:セッション単位で一時的に無効化する(推奨)

一時的にセーフモードをOFFにしたいだけなら、この方法が便利です。

SET SQL_SAFE_UPDATES = 0;

これをクエリとして実行すれば、そのセッション(接続)中だけセーフモードが無効になります。

そしてUPDATEやDELETEのSQLを実行したあと、安全のために戻すこともできます。

SET SQL_SAFE_UPDATES = 1;

この方法のメリット:

  • 一時的なので事故が少ない
  • 環境全体に影響を与えない

方法②:Workbenchの設定を変更して常に無効化する

毎回セーフモードを無効にするのが面倒だ!という方は、WorkBenchの設定で恒久的にOFFにできます。

手順

  1. MySQL Workbench を開く
  2. 上部メニューから「Edit(編集)」→「Preferences(設定)」を選択
  3. 左メニューから「SQL Editor」を選択
  4. Safe Updates(セーフアップデート)」のチェックを外す
  5. 「OK」で設定を保存
  6. 接続を再起動して反映させる

これで、次回以降の操作でもセーフモードの制限を受けずに済みます。


どちらの方法がいいの?

方法向いている人備考
一時的に無効化(SET文)慎重派・事故を防ぎたい人本番環境では特におすすめ
設定から無効化毎回操作するのが面倒な人開発環境やローカル限定で使うのが安心

まとめ

  • セーフモードはWHEREなしDELETE/UPDATEを防止する安全機能
  • 一時的に無効化するには SET SQL_SAFE_UPDATES = 0 を使う
  • 恒久的にOFFにしたいときは Workbenchの設定画面からSafe Updatesを外す
  • 本番では基本的にONのままにして、必要なときだけ一時的にOFFにするのがベスト!

今後の学習の指針

  • DELETEUPDATEWHERE句の重要性を理解することが第一
  • セーフモードは「事故防止策」として実践的な仕組みなので、安全設計の基本として捉えてください
  • MySQLの設定やセッションの理解を深めて、「なぜそう動くか」も合わせて学びましょう

次は BEGIN, ROLLBACK, COMMIT を使ったトランザクション制御もチェックしてみてくださいね!

何か他に気になる機能があれば、またいつでも聞いてください!

最後までお読みいただきありがとうございます。