在使用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;

修改下数据库模式

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 如果想要提高数据库安全等级,可以在恢复回原有的设置, 执行命令:
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; 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄