密钥上的Mysql Update错误

时间:2011-06-02 18:40:50

标签: mysql

Update AAA.master A, BBB.images B, BBB.content C 
set A.caption = B.image_txt where C.content_id_key = A.media_id

我收到以下错误,但我确定它们都是主键。他们必须有PK-> FK关系吗?我不这么认为。   您正在使用安全更新模式,并且您尝试更新没有使用KEY列的WHERE的表

由于

2 个答案:

答案 0 :(得分:1)

解决方案出错了。

但首先你需要重写你的查询 在我之后重复:

  

我不能使用隐式where联接,因为它们令人困惑!

将更新查询重写为:

Update AAA.master a
INNER JOIN BBB.images b ON (a.someid = b.someid) #<<-- your error is here 
INNER JOIN BBB.content c ON (C.content_id_key = A.media_id)
SET A.caption = B.image_txt WHERE ........   #<<-- and also here

你做的第一个错误是表A和B之间没有连接标准。 第二个错误是在严格模式下你需要有一个where条款 并且你没有 我做了 没有你没有有一个where子句,你只是有一个加入标准伪装作为where子句。

此外,你仍然是一个短暂的加入标准和真正的where子句短。

这就是隐式连接糟透了的原因

答案 1 :(得分:0)

可能是因为您没有从WHERE部分中的表B中选择记录