Update a row entry in SQLAlchemy
Updating a row entry has a slightly different procedure than that of a conventional SQL query which is shown below
from sqlalchemy import update
upd = update(tablename)
val = upd.values({"column_name":"value"})
cond = val.where(tablename.c.column_name == value)
Get the books to table from the Metadata object initialized while connecting to the database. Pass the update query to the execute() function and get all the results using fetchall() function. Use a for loop to iterate through the results.
The SQLAlchemy query shown in the below code updates the “book_name” with book_id = 3 as “2022 future ahead”. This will update one-row entry in the table. Then, we can write a conventional SQL query and use fetchall() to print the results to check whether the table is updated properly.
# 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)
Output:
How to update SQLAlchemy row entry?
In this article, we are going to see how to use the UPDATE statement in SQLAlchemy against a PostgreSQL database in python.
Contact Us