Wirkt sich das SQL-Update auf die Unterabfrage während des Update-Laufs aus?

Ich erstelle gerade eine komplexe Update-Abfrage, die ungefähr so ​​aussieht:

<code>update table join
    (select y, min(x) as MinX 
     from table
     group by y) as t1
    using (y)
set x = x - MinX
</code>

Was bedeutet, dass die Variablex wird basierend auf der Unterabfrage aktualisiert, die auch Variablen verarbeitetx - aberkonnte das nichtx bereits durch den laufenden Update-Befehl geändert werden? Ist das nicht ein Problem? Ich meine, in der normalen Programmierung müssen Sie normalerweise explizit damit umgehen, d. H. Neuen Wert vom alten Wert an einer anderen Stelle speichern und nach Abschluss der Arbeit den alten Wert durch neuen ersetzen ... aberWie wird die SQL-Datenbank dies tun?

Ich interessiere mich nicht für eine einzige Beobachtung oder ein Experiment. Ich hätte gerne einen Ausschnitt aus dem docs- oder sql-Standard, aus dem hervorgeht, welches Verhalten in diesem Fall definiert ist. Ich verwende MySQL, aber die Antworten gelten auch für andere PostgresQL-, Oracle- usw. und insbesonderefür SQL-Standard im Allgemeinen werden geschätzt. Vielen Dank!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage