(MySQL)Error Code 1175解決方法,關閉Safe Update Mode

MySQL有個叫SQL_SAFE_UPDATES的變數,為了資料庫更新操作的安全性,此值預設為ON。

1
2
3
4
5
6
7
8
mysql> show variables like '%safe_updates%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| sql_safe_updates | ON |
+------------------+-------+

1 row in set (0.00 sec)

在Safe Update Mode開啟的狀態下,在沒有 WHERE 或 LIMIT 條件的 UPDATE 或 DELETE 動作會拒絕執行,而即使是有 WHERE 和 LIMIT 條件,但沒有 KEY column 的 WHERE 條件也會拒絕執行。此時就會出現Error Code 1175的訊息。

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option…

要關閉Safe Update Mode 可執行SET SQL_SAFE_UPDATES=0指令:

1
2
3
4
5
6
7
8
9
10
11
mysql> SET SQL_SAFE_UPDATES=0;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%safe_updates%';
+------------------+-------+
| Variable_name | Value |+
------------------+-------+
| sql_safe_updates | OFF |
+------------------+-------+

1 row in set (0.00 sec)

Safe Update Mode 關閉後,就可以執行 DELETE 或 UPDATE 動作了。
要再開啟Safe Update Mode,就執行SET SQL_SAFE_UPDATES=1即可開啟。