在使用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;
执行成功后,以delete命令为例,非主键情况下又报错了,说明安全等级修改成功
查看设置:
show variables like 'sql_safe%';+------------------+-------+| Variable_name | Value |+------------------+-------+| sql_safe_updates | OFF |+------------------+-------+
SQL_SAFE_UPDATES有两个取值0和1, 或ON 和OFF;
修改的话,以下2条命令都可以;set sql_safe_updates=0; set sql_safe_updates=off;