【发布时间】:2019-12-10 16:39:17
【问题描述】:
之前很多次,当我尝试在 mySQL 表中设置/更新/删除某些内容时,它给出了
错误代码:1175。您正在使用安全更新模式,并且您尝试更新没有使用 KEY 列的 WHERE 的表 要禁用安全模式,请切换 Preferences -> SQL Editor 中的选项并重新连接。
我可以通过在 where 子句中包含一个涉及主键的真实条件来解决这个问题。
但是,为什么以下方法不起作用?
UPDATE Lifts
INNER JOIN liftstemp on Lifts.LiftID = liftstemp.LiftID
SET Lifts.AnnualNoLoadTestDate = liftstemp.AnnualNoLoadTestDate
where Lifts.LiftID<>"";
LiftID 是一个 varchar 并且是主键。
更新:根据 Bill Karwin 的建议,我暂时禁用了安全模式并收到了一份 EXPLAIN 报告,但我不知道如何解释它。
最终更新:结果可能是版本问题。我在那台机器上运行 mariadb。在另一台装有 mySQL 的机器上,它没有任何问题。
【问题讨论】:
标签: mysql