在使用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命令为例,非主键情况下又报错了,说明安全等级修改成功
(无主键的表进行update和delete)
set SQL_SAFE_UPDATES=0;
update c set price=1,goods_m='0001' where goods_m='001';
set SQL_SAFE_UPDATES=1;
set SQL_SAFE_UPDATES=0;
delete from c where price>5 and price<9;
SET SQL_SAFE_UPDATES=1;