gpt4 book ai didi

php - 同时发出 SQL 语句

转载 作者:行者123 更新时间:2023-11-30 00:23:33 26 4
gpt4 key购买 nike

我目前正在开发 PHP Web 应用程序并使用 MySQL(xampp 默认设置)作为我的 dbms。我的问题是不同的用户可以连接到网络应用程序并同时精确发出更新查询。

这是一个例子,

前 10 行(info_id 1 到 10)数据包含 info_update = TRUE

For example
**User 1 issue**
UPDATE info SET reply='helloworldOne' WHERE info_id = (SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC);

**User 2 issue**
UPDATE info SET reply='helloworldTwo' WHERE info_id = (SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC);

**User 3 issue**
UPDATE info SET reply='helloworldThree' WHERE info_id = (SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC);

and so on....

我想要做的是所有这些查询都可以更新到不同的行,直到 info_id (10)。因此,用户 11 将自动发出(在我的代码中完成)INSERT 查询,因为表中不再存在 info_update = TRUE。

1) 我的问题是,如果这些查询同时向 dbms 发出,以上所有查询是否都会更新到同一行 (info_id)?

2) 如果问题 1 的答案是否定的,那么“SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC”在这种情况下将生成不同的 info_id 而不是 info_id (10)对于每个查询?

3) 我是否需要使用 RabbitMQ 对所有这些请求进行排队,以便请求被一一执行,先执行用户 1 请求,然后执行用户 2 请求,然后执行用户 3 请求?无论如何,我还是 RabbitMQ 的新手,所以我不太确定 RabbitMQ 是否可以做到这一点......

最佳答案

据我所知,MySQL 在内部解决了这些问题,这意味着它会自动锁定正在更新的行,您可以在这里阅读更多相关信息:

https://dev.mysql.com/doc/refman/5.1/en/internal-locking.html

关于php - 同时发出 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23052118/

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