2
當我運行此查詢:SQL更新標量函數
UPDATE myTable SET x = (SELECT round(random()*100));
所有記錄有x
相同的值。這是有道理的。
當我運行此查詢:
UPDATE myTable SET x = round(random()*100);
它更新所有表中的記錄,併爲每條記錄的x
值是不同的。
我想知道第二個查詢在後臺發生了什麼。它是否爲每個記錄ID(1 .... n)運行更新查詢?
我猜測它的工作原理類似於觸發器,其中的每一行更新
- 觸發攔截
- 調用x的功能,並將值之前
- 執行查詢
究竟發生了什麼?