Usando a expressão UPDATE

o update() método no objeto da tabela de destino constrói uma expressão UPDATE SQL equivalente.

table.update().where(conditions).values(SET expressions)

o values()método no objeto de atualização resultante é usado para especificar as condições SET de UPDATE. Se deixado como Nenhum, as condições SET são determinadas a partir dos parâmetros passados ​​para a instrução durante a execução e / ou compilação da instrução.

A cláusula where é uma expressão opcional que descreve a condição WHERE da instrução UPDATE.

O trecho de código a seguir altera o valor da coluna 'sobrenome' de 'Khanna' para 'Kapoor' na tabela de alunos -

stmt = students.update().where(students.c.lastname == 'Khanna').values(lastname = 'Kapoor')

O objeto stmt é um objeto de atualização que se traduz em -

'UPDATE students SET lastname = :lastname WHERE students.lastname = :lastname_1'

O parâmetro vinculado lastname_1 será substituído quando execute()método é invocado. O código de atualização completo é fornecido abaixo -

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 código acima exibe a seguinte saída com a segunda linha mostrando o efeito da operação de atualização como na captura de tela fornecida -

[
   (1, 'Ravi', 'Kapoor'),
   (2, 'Rajiv', 'Kapoor'),
   (3, 'Komal', 'Bhandari'),
   (4, 'Abdul', 'Sattar'),
   (5, 'Priya', 'Rajhans')
]

Observe que uma funcionalidade semelhante também pode ser alcançada usando update() função no módulo sqlalchemy.sql.expression conforme mostrado abaixo -

from sqlalchemy.sql.expression import update
stmt = update(students).where(students.c.lastname == 'Khanna').values(lastname = 'Kapoor')