req = Test() setattr(req, 'test', 1); session.add(req) print req.id
reqオブジェクトの最後のIDを取得する方法は?sqlalchemyと最後の挿入ID
req = Test() setattr(req, 'test', 1); session.add(req) print req.id
reqオブジェクトの最後のIDを取得する方法は?sqlalchemyと最後の挿入ID
最初にコミットする必要があります(session.add(req)
以降)。
最後のprint文の前にsession.commit()を実行すると、id属性が設定されます。書かれているように、エンジンがSQLクエリを実行する理由はないので、オブジェクトはまだ挿入されていません。クエリが実行されると(セッションのフラッシュまたはコミット時に)IDがそこに格納されます。
flush()で十分です。クエリを実行して自動IDを入力します。
しかし、req.idを別のテーブルに1つのトランザクションで挿入したいとします。 – Bdfy
次に、リレーショナルデータベースレイアウトを使用する必要があります。 [このチュートリアル](http://www.sqlalchemy.org/docs/orm/tutorial.html)を読んでください。もちろん、テーブル内の最大インデックス(SELECT MAX(ID)FROMテーブル)を選択しようとすると、あなたのオブジェクトのインデックスはこの最大インデックス+ 1でなければなりませんが、本当は安全ではありません。これは同時に実行されます)。 –