溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL ERROR 1175 安全模式UPDATE/DELETE操作失敗怎么辦

發布時間:2021-10-25 15:56:57 來源:億速云 閱讀:337 作者:柒染 欄目:MySQL數據庫

這期內容當中小編將會給大家帶來有關MySQL ERROR 1175 安全模式UPDATE/DELETE操作失敗怎么辦,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在做某些update 或者 delete操作時,會報錯:
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
大致意思是,使用了安全模式下,嘗試使用update(delete)操作表時,沒有在where條件里寫有key的列。


比如,某張表有兩個字段,其中col_1為主鍵,以下操作都是被禁止的:

  1. DELETE FROM table_name;

  2. DELETE FROM table_name LIMIT 5;

  3. DELETE FROM table_Name WHERE col_2=0;

  4. UPDATE table_name SET col_1=0;

  5. UPDATE table_name SET col_1=0 WHERE col_2=0;


【解決方案】:
要么禁用這個安全模式,要么按要求寫sql即可解決這個問題:

〇 禁用對應安全模式:
實際上是開啟了sql_safe_updates這個參數導致的,可以檢查一下該參數:

  1. mysql> SELECT @@sql_safe_updates;

  2. +--------------------+

  3. | @@sql_safe_updates |

  4. +--------------------+

  5. | 1                  |

  6. +--------------------+

  7. 1 row in set (0.00 sec)

如果臨時禁用,可以直接動態修改會話級別的模式:

  1. mysql> SET sql_safe_updates=0;

  2. Query OK, 0 rows affected (0.00 sec)


如果永久修改,則需要在my.cnf中做修改:
將[mysql]下的safe-updates參數注釋或者刪掉,重新通過client登錄mysql-server即可。



〇 修改sql
在sql_safe_updates開啟的情況下,如果需要使用update/delete操作一張表,必須滿足一下條件之一:
在DELETE操作里:
① 需要在where中寫明有key的列的條件,比如此處可以是WHERE col_1=0;(col_1為主鍵)。
或者
② 需要在where中寫名其他非key列的條件,并且加上limit限制

在UPDATE操作里:
① 需要指定limit限制
或者
② 需要在where中寫明有key的列的條件
或者
③ 需要在where中寫名其他非key列的條件,并且加上limit限制


上述就是小編為大家分享的MySQL ERROR 1175 安全模式UPDATE/DELETE操作失敗怎么辦了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女