2017年1月11日 星期三

MySQL 無法執行語句

情境:
使用MySQL Workbench執行SQL出現以下問題:

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 in Preferences -> SQL Editor -> Query Editor and reconnect.

解決方法
最前面加入以下指令
SQL_SAFE_UPDATES = 0



解釋

mysql有個叫SQL_SAFE_UPDATES的變數,為了資料庫更新操作的安全性,此值預設為1,所以才會出現更新失敗的情況。

下面是SQL_SAFE_UPDATES變數為0和1時的說明:

SQL_SAFE_UPDATES = 1時,不帶where和limit條件的update和delete動作陳述式是無法執行的,即使是有where和limit條件但不帶key column的update和delete也不能執行。

SQL_SAFE_UPDATES = 0時,update和delete操作將會順利執行。那麼很顯然,此變數的預設值是1。

所以,出現1175錯誤的時候,可以先設置SQL_SAFE_UPDATES的值為0,然後再執行更新

沒有留言:

張貼留言