0
列がid
,a
,b
であり、値が(123, 'foo', 'bar')
の行があるテーブルmytable
があるとします。UPDATEは、指定された順序でSET割り当てを実行することが保証されていますか?
私はこのクエリを実行する:
UPDATE mytable SET b=a, a='boom' WHERE id=123
Iは、2つの割り当てが所定の順序で実行することを期待したい、従って得られた行が(123, 'boom', 'foo')
あることが、この保証されていますか?
実行順序が未定義であるため、理論上、オプティマイザが逆順で実行することを決定した場合は、(123, 'boom', 'boom')
となります。
MySQLのドキュメントでは、割り当てがクエリに表示される順序で実行されることは明示的に記載されていません。
私は何も想定しないだろう、この5月将来的に変化するものであり、両方の値を割り当てて戻ってきて、ソフトウェアの更新が終わると動作を停止するコードを書くのに時間がかかります。 –