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;
本文介绍了在MySQL中遇到1175错误的情况,该错误发生在安全更新模式下尝试更新无主键列的表。解决方案是添加一个主键或者临时关闭安全模式。讨论了在安全模式下更新数据的重要性,并提出取消安全模式、设置主键和临时禁用安全模式的选项。文章强调了正确使用主键和理解安全更新模式对于数据库管理的意义。
5万+

被折叠的 条评论
为什么被折叠?



