Sử dụng biểu thức UPDATE
Các update() phương thức trên đối tượng bảng đích xây dựng biểu thức SQL UPDATE tương đương.
table.update().where(conditions).values(SET expressions)
Các values()phương thức trên đối tượng cập nhật kết quả được sử dụng để chỉ định điều kiện SET của CẬP NHẬT. Nếu để là Không, các điều kiện SET được xác định từ các tham số được truyền cho câu lệnh trong quá trình thực thi và / hoặc biên dịch câu lệnh.
Mệnh đề where là một biểu thức Tùy chọn mô tả điều kiện WHERE của câu lệnh UPDATE.
Đoạn mã sau thay đổi giá trị của cột 'họ' từ 'Khanna' thành 'Kapoor' trong bảng sinh viên -
stmt = students.update().where(students.c.lastname == 'Khanna').values(lastname = 'Kapoor')
Đối tượng stmt là một đối tượng cập nhật dịch sang -
'UPDATE students SET lastname = :lastname WHERE students.lastname = :lastname_1'
Tham số ràng buộc lastname_1 sẽ được thay thế khi execute()phương thức được gọi. Mã cập nhật đầy đủ được cung cấp bên dưới -
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///college.db', echo = True)
meta = MetaData()
students = Table(
'students',
meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)
conn = engine.connect()
stmt=students.update().where(students.c.lastname=='Khanna').values(lastname='Kapoor')
conn.execute(stmt)
s = students.select()
conn.execute(s).fetchall()
Đoạn mã trên hiển thị đầu ra sau với hàng thứ hai hiển thị hiệu quả của hoạt động cập nhật như trong ảnh chụp màn hình đã cho -
[
(1, 'Ravi', 'Kapoor'),
(2, 'Rajiv', 'Kapoor'),
(3, 'Komal', 'Bhandari'),
(4, 'Abdul', 'Sattar'),
(5, 'Priya', 'Rajhans')
]
Lưu ý rằng chức năng tương tự cũng có thể đạt được bằng cách sử dụng update() hàm trong mô-đun sqlalchemy.sql.expression như hình dưới đây -
from sqlalchemy.sql.expression import update
stmt = update(students).where(students.c.lastname == 'Khanna').values(lastname = 'Kapoor')