我有一个关于多表更新(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”时一切正常。