做抢激活码功能, 假如有如下一张表
CREATE TABLE `code` (
`it` int(11) NOT NULL,
`userID` int(11) NOT NULL,
PRIMARY KEY (`it`)
)
1.先查出一个userID为空的记录
2.把此记录的userID修改为当前用户ID
如果产生并发, 两个用户同时读了同一条记录, 最后UPDATE时userID就产生了覆盖, 请问这种方式怎么处理?
PS:去年做的时候用的最高隔离级别serializable, 今天想想这种隔离级别并发不能高, 所以
CREATE TABLE `code` (
`it` int(11) NOT NULL,
`userID` int(11) NOT NULL,
PRIMARY KEY (`it`)
)
1.先查出一个userID为空的记录
2.把此记录的userID修改为当前用户ID
如果产生并发, 两个用户同时读了同一条记录, 最后UPDATE时userID就产生了覆盖, 请问这种方式怎么处理?
PS:去年做的时候用的最高隔离级别serializable, 今天想想这种隔离级别并发不能高, 所以
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货