如何使用SQL Alchemy(PostgreSQL)锁定表?

时间:2012-08-23 23:17:20

标签: postgresql concurrency sqlalchemy

我正在使用与使用SQL Alchemy的房间预订应用程序进行会话。该应用程序到目前为止工作正常,但是,我测试了2个人同时使用它,使用不同的用户帐户,并且储备可以在同一个房间和一天中的小时完成。

当只使用一个帐户时没有发生这种情况,我经常测试房间检查代码,因此必须是并发问题(两个用户在空时使用检查并且使用它)。我正在使用PostgreSQL作为DBMS,有没有办法在提交数据库时锁定表,然后在完成后将其解锁?

1 个答案:

答案 0 :(得分:2)

这正是发明exclusion constraints的情况。 9.2发布后,您可以使用timestamptz ranges;对于版本9.0和9.1,您需要安装temporalbtree_gist模块。

有关详细信息,请参阅this blog post by the Jeff Davis,他提出了这个想法并实施了它。