gpt4 book ai didi

php - mysql - 防止同时请求出现重复的 "active"条目

转载 作者:行者123 更新时间:2023-11-29 13:12:10 24 4
gpt4 key购买 nike

我得到了一个如下所示的用户表:

| id | username | active |

可能有多个条目具有相同的用户名和 active=0,但只有一个具有相同用户名且设置了 active=1 的唯一条目。

确保两个同时请求不会创建重复项的最佳方法是什么?(Session1:SELECT;0 行、Session2:Select;0 行、Session1:Insert、Session2:Insert => 重复条目)

我发现我可以设置 active=NULL 而不是 active=0 并将 username&active 设置为唯一,这将实现我正在寻找的东西 - 但这似乎这是一个相当老套的解决方案,并且不能在所有数据库引擎中可靠地工作。

我已经看到了将 active=0 条目移至第二个表的建议,但这看起来也很困惑,并且会在所有选择查询中产生开销。

最佳答案

您可以使用表锁定。该命令锁定表并阻止所有人写入。

<?
$dbh->exec("LOCK TABLES tbl WRITE");

// Check whether you have an active element.
// You can make it inactive or whatever. You
// are the only one who has access to this table.

$dbh->exec("UNLOCK TABLES");
?>

您可以在documentation中阅读更多相关内容。 .

关于php - mysql - 防止同时请求出现重复的 "active"条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21944800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com