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') ]
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")
🚫