【问题】
在使用mysql执行update的时候,如果不是用主键当where语句,会报如下错误,使用主键用于where语句中正常。
异常内容: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 Queries and reconnect.
【解析】
这是因为MySql运行在safe-updates模式下,该模式会导致非主键条件下无法执行update或者delete命令。
【解决方案一】
执行命令SET SQL_SAFE_UPDATES = 0; 修改下数据库模式
如果想要提高数据库安全等级,可以在恢复回原有的设置,执行命令:SET SQL_SAFE_UPDATES = 1;
【解决方案二】
如果安装了MySQL Workbench,可以这样:菜单项Edit → Preferences → 选中左侧SQL Editor → 取消复选框 “Safe Updates” Forbid UPDATEs and DELETEs with no key in WHERE clause or no LIMIT clause. Requires a reconnection
重启 MySQL Workbench 即可。