Usar una expresión UPDATE

EN Actualizar () El método crea una instrucción UPDATE SQL equivalente en el objeto de la tabla de destino.

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

EN valores () para el objeto de actualización resultante, se utiliza para definir las condiciones SET para la ACTUALIZACIÓN. Si se deja None, las cláusulas SET se determinan a partir de aquellos parámetros que se pasan al operador durante la ejecución y / o compilación del operador.

La cláusula where es una expresión opcional que describe la cláusula WHERE de la instrucción UPDATE.

El siguiente fragmento de código cambia el valor de la columna ‘apellido’ de ‘Khanna’ a ‘Kapoor’ en la tabla de estudiantes.

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

El objeto stmt es un objeto de actualización que se traduce en –

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

Parámetro asociado apellido_1 será reemplazado cuando ejecutar () se llama al método. El código de actualización completo se proporciona a continuación:

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()

El código anterior muestra el siguiente resultado con una segunda línea que muestra el efecto de la operación de actualización como en la captura de pantalla dada:

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

Operación de actualización

Tenga en cuenta que también se puede lograr una funcionalidad similar con Actualizar () función en el módulo sqlalchemy.sql.expression como se muestra a continuación –

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

🚫