我有一个表,我想用另一个表中的值更新,我使用以下代码:
UPDATE TableA
SET Value = (
SELECT TableB.Value2
FROM TableB
WHERE TableA.id=TableB.ta_id
);
尽管TableA.id是tableA的主键,但我不断收到以下错误:
错误代码:1175。您正在使用安全更新模式,并且您尝试更新没有使用KEY列的WHERE的表要禁用安全模式,请切换首选项中的选项 - > SQL编辑器并重新连接。
我做错了什么?
答案 0 :(得分:2)
问题是您没有在主查询中使用Where语句。 在你的情况下,它会修改你的所有表。如果它是你想要做的,你可以取消激活mysql的安全模式或做一个总是真实的条件,如
UPDATE TableA,TableB
SET TableA.Value = TableB.Value2
WHERE TableA.id = TableB.ta_id;