【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為主鍵,以下操作都是被禁止的:
【解決方案】:
要麼禁用這個安全模式,要麼按要求寫sql即可解決這個問題:
〇 禁用對應安全模式:
實際上是開啟了sql_safe_updates這個引數導致的,可以檢查一下該引數:
如果臨時禁用,可以直接動態修改會話級別的模式:
如果永久修改,則需要在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限制
作者微信公眾號(持續更新)
在做某些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為主鍵,以下操作都是被禁止的:
-
DELETE FROM table_name;
-
DELETE FROM table_name LIMIT 5;
-
DELETE FROM table_Name WHERE col_2=0;
-
UPDATE table_name SET col_1=0;
- UPDATE table_name SET col_1=0 WHERE col_2=0;
【解決方案】:
要麼禁用這個安全模式,要麼按要求寫sql即可解決這個問題:
〇 禁用對應安全模式:
實際上是開啟了sql_safe_updates這個引數導致的,可以檢查一下該引數:
-
mysql> SELECT @@sql_safe_updates;
-
+--------------------+
-
| @@sql_safe_updates |
-
+--------------------+
-
| 1 |
-
+--------------------+
- 1 row in set (0.00 sec)
-
mysql> SET sql_safe_updates=0;
- 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限制
作者微信公眾號(持續更新)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-2123558/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 高併發mysql update操作必定失敗MySql
- MySQL之資料的insert-delete-update操作MySqldelete
- WorkBench,DELETE 標準語句失敗delete
- mysql 5.5 中自連線update and deleteMySqldelete
- GreatSQL執行Update失敗案例分析SQL
- Java的快速失敗和安全失敗Java
- MySQL資料災難挽救之Delete\UpdateMySqldelete
- mysql innodb新建索引堵塞update ,insert,deleteMySql索引delete
- 快速失敗機制&失敗安全機制
- MySQL新增外來鍵失敗ERROR 1452的解決MySqlError
- MySQL 常用的UPDATE操作MySql
- 常用失敗控制模式模式
- win10 windows update更新失敗怎麼解決 win10系統update更新失敗如何修復Win10Windows
- sqlserver update或者Delete誤操作恢復方法---【驗證】SQLServerdelete
- LINQ to SQL語句之Insert/Update/Delete操作SQLdelete
- Oracle資料庫中Insert、Update、Delete操作速度Oracle資料庫delete
- rosdep update 超時失敗最新解決方法ROS
- windows update更新失敗報錯解決方法Windows
- win8.1 update更新失敗解決方法
- MySQL啟動失敗MySql
- Mysql update誤操作恢復MySql
- mysql 在delete、insert、update 時,page的變化MySqldelete
- 表連線時update與delete操作需注意的地方delete
- win8.1update安裝失敗怎麼辦?
- ubuntu 12.10 sudo apt-get update 失敗Ubuntuapt-get
- win10系統進入安全模式失敗如何解決Win10模式
- mysql主從同步失敗Last_IO_Error: Got fatal error 1236 from master解決方法MySql主從同步ASTErrorGo
- win10 pasv模式失敗在哪設定_win10 pasv模式失敗在哪修改Win10模式
- 關於MYSQL DML(UPDATE DELETE)中的子查詢問題和ERROR 1093 (HY000)錯誤MySqldeleteError
- Mysql備份失敗案例(一)MySql
- Kali 系統 apt-get update更新失敗解決方案apt-get
- 安裝CRS失敗後的清除操作
- 一次失敗的logmnr操作
- 操作都失敗,是什麼原因啊
- MySQL建立表失敗的問題MySql
- mysql操作命令梳理(2)-alter(update、insert)MySql
- Default Locking for INSERT, UPDATE, DELETE, and SELECT ... FOR UPDATE (351)delete
- MySQL Study之–Mysql啟動失敗“mysql.host”薦MySql