最近要更新 MySQL 资料表内其中一个字段的所有资料,只是用以下这个 SQL 指令:
UPDATE table_name SET field_name=0;
有个 MySQL 回传的错误讯息为:
“You are using safe update mode and you tried to update a table without a WHERE clause that uses a KEY column.”
查看一些资料后,原来 MySQL 在没有 WHERE 或 LIMIT 条件下会拒绝执行 UPDATE 或 DELETE querey,即使是没有 KEY column 的 WHERE 条件也会拒绝执行。
要解决就是将 MySQL 的 Safe Update Mode 关闭:
SET SQL_SAFE_UPDATES=0;
UPDATE table_name SET field_name=0;
如果要重新启用 Safe Update Mode,只要执行:
SET SQL_SAFE_UPDATES=1;