离开,我试图锁定某人的信用卡帐户(行),检查他们是否有足够的钱,如果他们有,用它支付。我需要锁定它,以防止一个条件,他们有足够的信用,但然后它被用于另一个事务,我的程序被留在认为它仍然有足够的信用。在终端级别,我可以这样做:我可以在两个终端中打开两个psql会话,我可以在一个终端中发出一个SELECT * FROM credit_card WHERE credit_card_number = 1234FOR UPDATE;命令,然后在另一个终端中发出一个SELECT *
我正在实现一个区分SELECT ...和SELECT ... FOR UPDATE的系统。常规SELECT ...用于读取实体,这些实体被允许处于“不正确”状态(不正确=可能会在片刻之后更新)现在,我尝试执行以下操作:每当SELECT ...FOR UPDATE语句读取对象时,将其他SELECT ... FOR U