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關係?我不這麼認爲。 您正在使用安全更新模式,你試過沒有一個WHERE使用鍵列更新表密鑰上的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關係?我不這麼認爲。 您正在使用安全更新模式,你試過沒有一個WHERE使用鍵列更新表密鑰上的Mysql更新錯誤
感謝
的解決方案是在該錯誤。
但首先,你需要重寫查詢。之後我
重複:
我不能使用隱
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子句短。
這就是爲什麼隱含加入吸如此糟糕
這可能是因爲你沒有從該表B中選擇記錄WHERE部分
不,我想that.I即使只有2臺試了一下。我閱讀關於關閉安全更新,但我不想。它幾乎像它沒有看到我的where子句。 – mike628 2011-06-02 19:16:47