2011-05-07 83 views

回答

2

您應該首先提交它(在session.add(req)之後)。

+0

但我想在一個事務中的其他表中插入req.id。 – Bdfy 2011-05-07 23:13:06

+0

然後你應該使用關係數據庫佈局。閱讀[本教程](http://www.sqlalchemy.org/docs/orm/tutorial.html)。當然,你可以嘗試在表中選擇最大索引('SELECT MAX(id)FROM table'),你的對象的索引應該是這個最大索引+ 1,但它不是很安全 - 它可能會導致競爭條件這在同一時間運行)。 – 2011-05-08 09:38:08

0

如果在最終的打印語句之前執行session.commit(),則會設置id屬性。正如所寫的,引擎沒有理由執行任何SQL查詢,因此該對象尚未被插入。一旦運行查詢(在會話刷新或提交時),該ID將在那裏。

0

flush()就足夠了,它會執行查詢並填充自動ID。