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

3

我正在使用一个使用SQLAlchemy的房间预订应用程序,并与会话一起使用。到目前为止,该应用程序运行良好,但是我测试了两个人同时使用不同用户帐户使用它时,可以在同一房间和时间段内进行预订。

当只使用一个帐户时,这种情况没有发生。我测试了很多次房间检查代码,因此必须是并发问题(两个用户同时使用检查为空并进行预订)。我正在使用PostgreSQL作为DBMS,是否有一种方法可以在提交到DB时锁定表,然后在完成时解锁它?


1
请添加您的表格布局和运行的查询。不清楚您的问题是并发问题还是数据库设计问题。 - Erwin Brandstetter
如果我理解正确的话,您有两个查询数据库的进程,它们都看到了一个空房间并且都成功预订了,这被翻译为两个成功的INSERT(或更新?),这不应该发生。像版本计数器或在Postgres中配置更严格的事务隔离一样的东西是否有帮助? - dtheodor
1个回答

2

以上链接已经失效,Jeff Davis的博客文章链接如下:http://thoughts.davisjeff.com/2010/09/25/exclusion-constraints-are-generalized-sql-unique/ - chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接