我有一個關於多表更新(MySQL)的問題。考慮表t1和t2。 t1中的PKEY是'tid',它是t2中的外鍵。在t2中有一個字段「qtyt2」,它取決於表t1中一個名爲「qtyt1」的字段。請看下面的SQL語句:多表更新(MySQL)
UPDATE t2,t1
SET t2.qtyt2=IF((t2.qtyt2- t1.qtyt1)<0,0,(t2.qtyt2- t1.qtyt1)),
t1.qtyt1 ="Some value.."
WHERE t2.tid="some value.."
AND t2.tid=t1.tid
在這個例子中qtyt2取決於qtyt1進行更新,而後者本身就是updated.Now結果應該返回2,如果兩行被更新。
是否有保證字段會按語句出現的順序進行更新(首先設置qtyt2,然後設置qtyt1)?
是否有可能首先設置qtyt1然後設置qtyt2?
語句中表的順序是否重要(UPDATE t2,t1或UPDATE t1,t2)?
我發現如果我寫了「UPDATE t1,t2」,那麼只有t1會得到更新,但是在將語句更改爲「UPDATE t2,t1」時一切正常。