![](/img/trans.png)
[英]Why I'm getting different results when I'm using whereRaw and where in mysql
[英]Why does MySQL think that I'm not using a WHERE statement?
我正在尝试在名为premier_products
的数据库中更新名为rep
的表。 表的主键是rep_num
。
当我运行以下语句时:
update rep
set last_name = "Perry"
where rep_num = 85;
我收到一条错误消息“您正在使用安全更新模式,并且您尝试更新没有使用KEY列的WHERE的表。”
我用Google搜索了该错误消息,并且大多数响应都是“您必须使用where
子句或关闭安全模式”。 但正如你所看到的,我正在使用where
子句。 如果我有where
子句,为什么会出现错误?
MySQL服务器版本5.6.20。
此图像显示rep_num绝对是我的主键:
此图像显示当前的rep表:
虽然您只保存数字,但您的主键类型是char(2)而不是tinyint(2),当您更新记录时,您在where条件中给出数值而不是char值。 我认为索引机制会触发错误并告诉您,您的位置不安全或可能产生错误结果。
在你的情况下尝试
update rep
set last_name = "Perry"
where rep_num = '85';
PS:你为什么不用前缀命名你的表? 喜欢tbl_rep? 只是一个想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.