개요
2025.07.02-[Python] SQLAlchemy - UPDATE 문 에서 SQLAlchemy를 사용해 테이블에 데이터를 UPDATE 하는 방법을 알아보았다. 이번 글에서는 테이블에 있는 데이터를 삭제하는 방법을 알아본다.
DELETE
insert, update를 수행할 때와 마찬가지로 deleted() 함수로 DELETE 문을 나타내는 객체를 생성하여 작업을 수행할 수 있다. 기본적인 사용 방법은 아래와 같다.
from sqlalchemy import delete
stmt = delete(user_table).where(user_table.c.name == "patrick")
print(stmt)
영향받는 행의 수 확인
DELETE 수행에 영향을 받는 행의 수를 확인하고 싶을 때는 쿼리를 수행한 결과 객체의 rowcount 속성을 확인하면 된다.
with engine.connect() as conn:
stmt = delete(user_table).where(user_table.c.name == "patrick")
result = conn.execute(stmt)
print(result.rowcount, "rows affected")
다만 rowcount 숫자는 where 절과 일치하는 행의 개수이기 때문에 실제로 수정이 발생했는지와는 관련이 없다. 또한 executemany를 사용하는 경우에는 rowcount를 사용할 수 없고, 만약 rowcount가 결정되지 않는 경우에는 -1을 반환한다.
참고 문서
https://docs.sqlalchemy.org/en/20/tutorial/data_update.html#the-delete-sql-expression-construct
728x90