MySQL事务超时多久?我这么问是因为我打算为我的电子商务项目某处的这种(PHP/MySQL的伪代码)的线CODE的支付流程:MySQL事务超时多长时间
START TRANSACTION;
SELECT...WHERE id IN (1,2,3) AND available = 1 FOR UPDATE; //lock rows where "available" is true
//Do payment processing...
//add to database, commit or rollback based on payment results
我想不出其他办法锁定正在购买的产品(所以如果两个用户同时购买它,并且只剩下一个库存,则一个用户将无法购买),如果产品可用,则处理付款,并创建基于支付结果...
选择FOR UPDATE不会阻止innodb中的并发读取(即正常选择查询)。选择仅更新块锁定查询(其他更新查询和删除查询)。它也会阻止像其他选择FOR UPDATES一样的特殊选择,并选择LOCK IN SHARE MODE – billmalarky 2013-04-12 06:44:53