我得到了这句话
UPDATE TABLE_A SET COL_A = COL_B, COL_B = 0
Run Code Online (Sandbox Code Playgroud)
我对它执行的顺序感到好奇,因为我希望COL_A应该包含我的COL_B的值,而COL_B应该是0,但是某种程度上当前两个字段都是0。
SQL更新本质上是原子的-没有更新单个列的“顺序”或“顺序”的概念。您可以按照自己喜欢的顺序放置它们,没关系。
从概念上讲,您可以考虑采用行的“之前”状态并将其更改为行的“之后”状态。因此,将使用更新之前的COL_B中的任何值来更新COL_A。
这使得交换两个值变得容易:
UPDATE test2 SET A=B, B=A;
Run Code Online (Sandbox Code Playgroud)