「MySQL データベースを操作しているときに、UPDATE または DELETE 命令を実行すると、「エラー コード 1175」がトリガーされることがあります。
この投稿では、このエラーの原因と、MySQL サーバーを使用して解決する方法について説明します。
「MySQL エラー コード 1175」の原因は何ですか?
「MySQL エラー コード 1175」は、WHERE 句を使用せずに UPDATE または DELETE 操作を実行すると発生します。
デフォルトでは、MySQL は safe_mode と呼ばれる機能を使用して、WHERE 句なしで UPDATE または DELETE ステートメントを実行できないようにします。これにより、ターゲットでの偶発的なデータ損失が防止されます。
したがって、safe_mode 機能がアクティブ化されている場合、MySQL は WHERE 句を含まない DELETE または UPDATE 操作でエラー コード 1175 を返します。
以下に例を示します。
更新 sakila.film 設定 タイトル = 「新しいタイトル」 ;この場合、対象とする行を指定せずにタイトル列の値を変更しようとしています。これにより、テーブル全体が指定された値で上書きされる可能性があります。したがって、MySQL はこれを防ぎ、次のようなエラーを返します。
MySQL Safe_Mode が有効になっているかどうかを確認する
safe_mode 機能の状態は、sql_safe_updates 変数に格納されます。したがって、この変数の値をフェッチして、safe_mode 機能が有効かどうかを判断できます。
クエリは次のとおりです。
次のような変数を表示します 「sql_safe_updates」 ;クエリは、次のような状態を返す必要があります。
+--------------------+-------+| | 変数名 | | 価値 | |
+--------------------+-------+
| | sql_safe_updates | | オン | |
+--------------------+-------+
1 行 の 設定 ( 0.00 秒 )
この場合、セッションで safe_mode 機能が有効になっていることがわかります。
「MySQL エラー コード 1175」の解決方法
このタイプのエラーを解決する最善の方法は、WHERE 句を使用することです。ただし、場合によっては、条件なしで UPDATE または DELETE を実行する必要があります。
これを行うには、セッションで safe_mode 機能を無効にして、クエリを実行できるようにします。次に、SET コマンドの後に変数名と設定したい値を使用できます。
たとえば、safe_mode を無効にするには、sql_safe_updates 変数の値を 0 に設定します。クエリは次のようになります。
SET SQL_SAFE_UPDATES = 0 ;有効にするには、次のように値を 1 に設定します。
SET SQL_SAFE_UPDATES = 1 ;MySQL Workbench では、[編集] -> [設定] -> [SQL エディター] に移動して、safe_mode 機能を無効にすることができます。
「安全な更新」機能を無効にし、サーバーへのセッションを再開しました。
終了
この投稿で、UPDATE または DELETE ステートメントを実行したときに発生する「MySQL エラー コード 1175」の原因を学びました。また、MySQL safe_mode 機能を無効にしてエラーを解決する方法も学びました。