是否可以在特定时间(例如每秒/分钟)运行查询。顺便说一下,我正在构建一个简单的拍卖系统,我所说的查询是检查是否有已经过期的产品。意味着它们的 datetime_end 小于当前日期和时间。 所以我有一个这样的查询:
SELECT id, datetime_end FROM auction_product WHERE datetime_end < NOW() AND `status` = 0;
确定是否有已过期的产品后,我将创建一个查询,将其状态更改为 1
表示状态为cancelled/closed
.
MySQL 中是否有可以运行特定查询的函数?就像自动查询一样。或者我应该制作一个每秒运行一次的 Ajax 并检查是否有过期产品?你能给我一些关于这个的想法吗? 因为在我当前的设置中,我只是将 AJAX 放在产品页面和主页中。意味着如果用户在其他页面,我的 AJAX 将不会运行。所以我想我会将我创建的 AJAX 放在页眉或页脚或全局 JS 中的某个位置。如果我这样做会影响页面加载的性能吗?因为它每秒都会运行一次。
这就是全部的感谢。我希望你能给我一些关于这个的想法。 :)
最佳答案
您可以使用计划事件在 MySQL 中执行此操作,例如:
CREATE EVENT IF NOT EXISTS expire_products
ON SCHEDULE
EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
DO
<insert your update statement here>;
您需要首先通过命令行参数启用事件调度程序:
--event-scheduler=ON
或 my.cnf/my.ini 选项:
event_scheduler=ON
或者在 MySQL 中运行以下命令:
SET GLOBAL event_scheduler = ON;
参见 https://dev.mysql.com/doc/refman/5.7/en/create-event.html了解更多详情。
关于mysql - 如何使用 MySQL 或 PHP 在特定时间运行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886839/