PythonのO/R Mapper の1つであるSQLAlchemyを利用してテーブルのレコード操作する際に使用する flush(), commit()の使い分けについて説明します 最近、仕事で使うようになり少しずつ学習しています。 簡単に言葉で表現するなら flush():一時的にクエリ結果をデータベースに反映(ロールバック可能なので、commit()しないとクエリが無効になり、最後にcommit()する必要あり) commit():永続的にクエリの結果をデータベースに反映(レコードの追加、更新、削除の完了) それぞれの用途としては エラー時にロールバックして、データベースへの反映を無かったことにしたい場合に使うと便利なのがflush() 例えば、 session.begin() try: for item in session.query(Model).all(): session.a