1.问题发生
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.
错误代码:1175。 您正在使用安全更新模式,并且您试图更新一个没有使用KEY列的WHERE的表。
2.问题解决
2.1.问题发生的语句
update tb set orderNo=0 where qrCode='\u0005\0\0\0\u0001\0\0\0\u0002\0\0\0\u0003' and id>0
2.2.解决问题后的代码
update tb1 set orderNo=0 where qrCode='\u0005\0\0\0\u0001\0\0\0\u0002\0\0\0\u0003' and id>0
3问题分析
就是在安全模式是,不允许子没有主键的条件下更新数据。索引加一个id>0问题就能解决。但这违背了安全的初衷,如果我们使用的 这个条件完全可以作为主键的话,可以把这个设为为主键。
4.其他方法
4.1 取消安全模式
4.2 设置主键
4.3 临时取消按钮模式
set sql_safe_updates=0;
执行的语句
set sql_safe_updates=1;