我正在开发一个基于PHP / Laravel的应用程序。在一种情况下,我必须在MySQL表中插入大量数据,一旦用户提交,大约需要1-2分钟才能完成插入查询。我想绕过另一个插入查询仍在进行中。

因此,我制作了一个log表,在批量插入开始在另一个表上之前,在0字段上插入了is_completed的值,当批量插入循环完成时,我已经触发了另一个查询,该查询更新了1表的is_completed字段。

这样我可以检查log标志是否设置为is_complete以允许用户下一个请求,否则就绕过查询。我已经使用事务进行批量插入,并且在处理异常(如果有异常)时清除了日志。

现在如果在批量插入过程中重新启动服务器时出现问题,在这种情况下日志表上的1标志设置为is_complete。如果这样,则用户直到第二天才能请求插入数据。

MYSQL是否提供任何形式的自动化,以便在DB服务器刚启动时可以运行查询?如果是这样,我将触发查询以清除日志表。关于我的情况,任何人都可以告诉我该怎么做或提出更好的解决方案吗?

最佳答案

您可以使用init_file服务器选项在服务器启动时运行SQL语句。

https://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_init-file

关于php - 在mysql服务器启动/重启时运行更新/删除查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48435832/

10-16 15:32
查看更多