昨天我正在使用一些需要「select ... for update」概念來避免競爭條件的sqlalchemy內容。添加.with_lockmode('update')
到查詢工作在InnoDB和Postgres的一種享受,但對於SQLite的我最終做選擇之前,在如何在sqlalchemy中爲更新事務行爲強制執行sqlite選擇
if session.bind.name == 'sqlite':
session.execute('begin immediate transaction')
潛行。
這似乎現在工作,但它感覺就像作弊。有一個更好的方法嗎?
當連接池是除了'NullPool'之外的東西時,這是必要的嗎?或者換個說法,當dsn是'sqlite:///:memory:'? – SingleNegationElimination 2011-10-05 02:02:32