Aktualizacje według parametrów
Zapytanie UPDATE surowego kodu SQL ma klauzulę SET. Jest renderowany przez konstrukcję update () przy użyciu kolejności kolumn podanej w pierwotnym obiekcie Table. Dlatego konkretna instrukcja UPDATE z określonymi kolumnami będzie za każdym razem renderowana tak samo. Ponieważ same parametry są przekazywane do metody Update.values () jako klucze słownika Pythona, nie ma innej ustalonej kolejności.
W niektórych przypadkach kolejność parametrów renderowanych w klauzuli SET ma znaczenie. W MySQL aktualizacja wartości kolumn jest oparta na innych wartościach kolumn.
Wynik następującego oświadczenia -
UPDATE table1 SET x = y + 10, y = 20
będzie miał inny wynik niż -
UPDATE table1 SET y = 20, x = y + 10
Klauzula SET w MySQL jest oceniana na podstawie wartości, a nie na podstawie wiersza. W tym celupreserve_parameter_orderjest używany. Lista 2-krotek w Pythonie jest podawana jako argument funkcjiUpdate.values() metoda -
stmt = table1.update(preserve_parameter_order = True).\
values([(table1.c.y, 20), (table1.c.x, table1.c.y + 10)])
Obiekt List jest podobny do słownika, z tą różnicą, że jest uporządkowany. Gwarantuje to, że najpierw zostanie wyświetlona klauzula SET kolumny „y”, a następnie klauzula SET kolumny „x”.