매개 변수 순서 업데이트

원시 SQL의 UPDATE 쿼리에는 SET 절이 있습니다. 이는 원래 Table 객체에 제공된 열 순서를 사용하여 update () 구성에 의해 렌더링됩니다. 따라서 특정 열이있는 특정 UPDATE 문은 매번 동일하게 렌더링됩니다. 매개 변수 자체가 Python 사전 키로 Update.values ​​() 메서드에 전달되므로 다른 고정 된 순서를 사용할 수 없습니다.

어떤 경우에는 SET 절에서 렌더링되는 매개 변수의 순서가 중요합니다. MySQL에서 열 값에 대한 업데이트 제공은 다른 열 값의 업데이트를 기반으로합니다.

다음 진술의 결과-

UPDATE table1 SET x = y + 10, y = 20

-와는 다른 결과가 나타납니다.

UPDATE table1 SET y = 20, x = y + 10

MySQL의 SET 절은 행 단위가 아닌 값 단위로 평가됩니다. 이를 위해preserve_parameter_order사용. 2- 튜플의 파이썬 목록은Update.values() 방법-

stmt = table1.update(preserve_parameter_order = True).\
   values([(table1.c.y, 20), (table1.c.x, table1.c.y + 10)])

List 객체는 정렬된다는 점을 제외하고 사전과 유사합니다. 이렇게하면 "y"열의 SET 절이 먼저 렌더링 된 다음 "x"열의 SET 절이 렌더링됩니다.