Cập nhật theo thứ tự tham số
Truy vấn UPDATE của SQL thô có mệnh đề SET. Nó được hiển thị bởi cấu trúc update () bằng cách sử dụng thứ tự cột được đưa ra trong đối tượng Bảng gốc. Do đó, một câu lệnh UPDATE cụ thể với các cột cụ thể sẽ được hiển thị giống nhau mỗi lần. Vì bản thân các tham số được truyền cho phương thức Update.values () dưới dạng khóa từ điển Python, không có thứ tự cố định nào khác khả dụng.
Trong một số trường hợp, thứ tự của các tham số được hiển thị trong mệnh đề SET là quan trọng. Trong MySQL, việc cung cấp các bản cập nhật cho giá trị cột dựa trên bản cập nhật của các giá trị cột khác.
Kết quả của câu lệnh sau -
UPDATE table1 SET x = y + 10, y = 20
sẽ có kết quả khác với -
UPDATE table1 SET y = 20, x = y + 10
Mệnh đề SET trong MySQL được đánh giá trên cơ sở mỗi giá trị chứ không phải trên cơ sở mỗi hàng. Với mục đích này,preserve_parameter_orderĐược sử dụng. Danh sách 2 bộ giá trị trong Python được đưa ra làm đối số choUpdate.values() phương pháp -
stmt = table1.update(preserve_parameter_order = True).\
values([(table1.c.y, 20), (table1.c.x, table1.c.y + 10)])
Đối tượng List tương tự như từ điển ngoại trừ nó được sắp xếp theo thứ tự. Điều này đảm bảo rằng mệnh đề SET của cột “y” sẽ hiển thị đầu tiên, sau đó là mệnh đề SET của cột “x”.