MySQL - 更新表的问题

时间:2016-03-10 21:03:54

标签: mysql

我有一个表,我想用另一个表中的值更新,我使用以下代码:

UPDATE TableA
SET Value = (
    SELECT TableB.Value2
    FROM TableB
    WHERE TableA.id=TableB.ta_id
);

尽管TableA.id是tableA的主键,但我不断收到以下错误:

错误代码:1175。您正在使用安全更新模式,并且您尝试更新没有使用KEY列的WHERE的表要禁用安全模式,请切换首选项中的选项 - > SQL编辑器并重新连接。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

问题是您没有在主查询中使用Where语句。 在你的情况下,它会修改你的所有表。如果它是你想要做的,你可以取消激活mysql的安全模式或做一个总是真实的条件,如

UPDATE TableA,TableB
SET TableA.Value = TableB.Value2
WHERE TableA.id = TableB.ta_id;
相关问题