gpt4 book ai didi

php - mySQL INSERT with TRIGGER 的计时问题

转载 作者:行者123 更新时间:2023-11-30 23:06:16 25 4
gpt4 key购买 nike

对于 iPad 应用程序,我创建了一个网络服务,当用户启动该应用程序时,它会在我的团队表中创建一个新的表行。 PHP 生成一个唯一 ID 并填充一些其他字段。

此外,我在插入时在 mySQL 中的团队表上创建了一个触发器,其中根据特定日期、项目和组的已插入行自动生成团队编号。

不幸的是,有时我在向表中插入新行时似乎遇到了计时问题。如果两个应用程序在同一秒(毫秒?)内创建了一个团队,那么两个应用程序的 mySQL 触发器的结果将是相同的团队编号。因此,两个应用程序都没有团队编号 1 和 2,而是团队编号 1。

我的 teamtable 看起来像这样:

TeamID | pProject | group | teamnumber | languagecode | created_at

以及 mySQL 的触发器:

CREATE TRIGGER after_team_insert BEFORE INSERT ON teams 

FOR EACH ROW
BEGIN

SELECT COUNT( * ) INTO @counter
FROM teams
WHERE DATE( created_at ) = DATE( NOW( ) )
AND teams.group = NEW.group
AND teams.pProject = NEW.pProject;

SET NEW.teamnumber = CAST(@counter AS UNSIGNED) + 1;

END;

我认为我的问题与将行插入数据库的并行线程有关,因此在触发器工作时得到错误的计数。

有没有人有这个问题的解决方案,或者我是否必须在 PHP 中使用某种队列来防止团队人数加倍?

提前致谢,卡斯滕。

最佳答案

关于php - mySQL INSERT with TRIGGER 的计时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21759846/

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