首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择更新和3个用户

问选择更新和3个用户
EN

Stack Overflow用户
提问于 2011-07-09 18:13:58
回答 1查看 242关注 0票数 0

我有这个代码,并用3个用户进行了测试

代码语言:javascript
复制
<?php
mysql_query("BEGIN");
$r=mysql_query("SELECT max(Ticket) from ticket FOR UPDATE");
$row=mysql_fetch_row($r);
$k=$row[0];
echo $k;
for ($j=1;$j<100000;$j++) {
    $k++;
    $r=mysql_query("insert into ticket (Ticket) values ('$k')");
}
mysql_query("COMMIT");
?>

我期望看到这样的结果

代码语言:javascript
复制
user1 0

user2 9999

user3 19998

但我看到了这个结果

代码语言:javascript
复制
user1 0

user1 **9999**

user3 **9999**

即使我有一个select for update,user2和user3似乎也同时运行代码

EN

回答 1

Stack Overflow用户

发布于 2011-07-09 18:24:57

在执行select ... for update时,InnoDB使用行级锁定,即只影响现有的行。

您需要的是MySQL的AUTO_INCREMENT特性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6634127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档