【发布时间】:2015-01-06 04:51:24
【问题描述】:
我正在尝试在名为 premier_products 的数据库中更新名为 rep 的表。该表的主键是rep_num。
当我运行以下语句时:
update rep
set last_name = "Perry"
where rep_num = 85;
我收到一条错误消息,提示“您正在使用安全更新模式,并且您尝试更新没有使用 KEY 列的 WHERE 的表。”
我在 Google 上搜索了该错误消息,大多数回复都类似于“您必须使用 where 子句或关闭安全模式”。但正如您所见,我 am 使用了 where 子句。如果我有 where 子句,为什么会出现错误?
MySQL 服务器版本 5.6.20。
这张图片显示 rep_num 绝对是我的主键:
这张图片显示了当前的代表表:
【问题讨论】:
-
rep_num可能未编入索引。要么给它一个,要么在工作台中更改您的设置以消除该限制。 -
您确定
rep_num是主键吗?您的表创建脚本是什么样的? -
@John - 未编入索引是什么意思?这是一张桌子的图片,如果有帮助的话:i.imgur.com/TSyZ6AX.png
-
@Pikamander2:这是它的数据。它的结构是什么?
-
@Pikamander2:不,MySQL 服务器。
标签: mysql mysql-workbench