En este artículo, veremos cómo usar la declaración DELETE para eliminar varias filas 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 id_libro y precio_libro, género, nombre_libro. 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, delete # 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:
Eliminar varias filas en SQLAlchemy
Eliminar varias filas tiene un procedimiento ligeramente diferente al de una consulta SQL convencional que se muestra a continuación
de sqlalchemy importar eliminar
Tablename.delete().where(Tablename.c.column_name == valor)
Obtenga la tabla de libros del objeto Metadata inicializado mientras se conecta a la base de datos. Pase la consulta de eliminació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 SQLAlchemy que se muestra en el siguiente código elimina el género «no ficción», lo que eliminará efectivamente varias filas de una sola vez. Luego, podemos escribir una consulta SQL convencional y usar fetchall() para imprimir los resultados y verificar si la tabla se actualizó correctamente.
Python3
# delete dele = BOOKS.delete().where(BOOKS.c.genre == "non-fiction") engine.execute(dele) # 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