En este artículo, vamos a ver cómo usar la declaración UPDATE en SQLAlchemy contra una base de datos PostgreSQL en python.
Creación de tabla para demostración:
Importe las funciones necesarias del paquete SQLAlchemy. Establezca una conexión con la base de datos PostgreSQL usando la función create_engine() como se muestra a continuación, cree una tabla llamada libros con las columnas book_id y book_price. Inserte un registro en las tablas usando la función insert() y valores() como se muestra.
Python3
# import necessary packages from sqlalchemy.engine import result import sqlalchemy from sqlalchemy import create_engine, MetaData,\ Table, Column, Numeric, Integer, VARCHAR, update # establish connections engine = create_engine( "database+dialect://username:password0@host:port/databasename") # initialize the Metadata Object meta = MetaData(bind=engine) MetaData.reflect(meta) # create a table schema books = Table( 'books', meta, Column('book_id', Integer, primary_key=True), Column('book_price', Numeric), Column('genre', VARCHAR), Column('book_name', VARCHAR) ) meta.create_all(engine) # insert records into the table statement1 = books.insert().values(book_id=1, book_price=12.2, genre='fiction', book_name='Old age') statement2 = books.insert().values(book_id=2, book_price=13.2, genre='non-fiction', book_name='Saturn rings') statement3 = books.insert().values(book_id=3, book_price=121.6, genre='fiction', book_name='Supernova') statement4 = books.insert().values(book_id=4, book_price=100, genre='non-fiction', book_name='History of the world') statement5 = books.insert().values(book_id=5, book_price=1112.2, genre='fiction', book_name='Sun city') # execute the insert records statement engine.execute(statement1) engine.execute(statement2) engine.execute(statement3) engine.execute(statement4) engine.execute(statement5)
Producción:
Actualizar una entrada de fila en SQLAlchemy
La actualización de una entrada de fila tiene un procedimiento ligeramente diferente al de una consulta SQL convencional que se muestra a continuación
from sqlalchemy import update upd = update(tablename) val = upd.values({"column_name":"value"}) cond = val.where(tablename.c.column_name == value)
Lleve los libros a la tabla desde el objeto Metadata inicializado mientras se conecta a la base de datos. Pase la consulta de actualización a la función execute() y obtenga todos los resultados usando la función fetchall(). Use un bucle for para iterar a través de los resultados.
La consulta de SQLAlchemy que se muestra en el siguiente código actualiza el «book_name» con book_id = 3 como «2022 futuro por delante». Esto actualizará la entrada de una fila en la tabla. Luego, podemos escribir una consulta SQL convencional y usar fetchall() para imprimir los resultados y verificar si la tabla se actualizó correctamente.
Python3
# Get the `books` table from the Metadata object BOOKS = meta.tables['books'] # update u = update(BOOKS) u = u.values({"book_name": "2022 future ahead"}) u = u.where(BOOKS.c.book_id == 3) engine.execute(u) # write the SQL query inside the # text() block to fetch all records sql = text("SELECT * from BOOKS") # Fetch all the records result = engine.execute(sql).fetchall() # View the records for record in result: print("\n", record)
Producción:
Publicación traducida automáticamente
Artículo escrito por jssuriyakumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA