我尝试编写数据库代码以确保它不受争用条件的影响,以确保锁定了正确的行或表。但是我经常想知道:我的代码正确吗?是否可以强迫任何现有的竞赛条件表现出来?我想确保,如果它们确实发生在生产环境中,我的应用程序将做正确的事情。
我通常确切地知道哪个并发查询可能会导致问题,但是我不知道如何强制它们并发运行以查看是否发生了正确的行为(例如,我使用了正确的锁类型),正确的错误是抛出等
注意:我使用PostgreSQL和Perl,因此,如果不能一概而论,就应该重新标记它。
更新:如果解决方案是程序化的,我希望使用它。这样,我可以编写自动化测试以确保没有回归。