【发布时间】:2016-12-21 13:41:31
【问题描述】:
首先,这是 OpenCart
我有两张桌子:
1. oc_product(product_id、model、price、event_start、event_end等)
2. oc_product_to_category(product_id, category_id)
每个产品都有开始日期和结束日期。我创建了 MYSQL 事件,该事件捕获所有具有过期日期的产品 (event_end
这是MYSQL EVENT的代码
CREATE EVENT move_to_archive_category
ON SCHEDULE EVERY 1 MINUTE
STARTS NOW()
DO
INSERT INTO `oc_product_to_category` (product_id, category_id)
SELECT product_id, 68 as category_id
FROM oc_product p WHERE p.event_end < NOW() AND p.event_end <> '0000-00-00';
当活动开始时,它会正常工作!但是,当我开始管理并发布过期日期的新产品时,我正在等待 1 分钟才能在“存档”类别中看到该产品,但没有任何反应。
我在“SHOW PROCESSLIST”中看到了,一切正常:
event_scheduler localhost NULL Daemon 67 Waiting for next activation NULL
而且“SHOW EVENTS”看起来也不错
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
events move_to_archive_category root@localhost SYSTEM RECURRING NULL 1 MINUTE 2016-08-15 13:37:54 NULL ENABLED 1 utf8 utf8_general_ci utf8_general_ci
我在本地工作,而不是现场
有什么想法吗?
提前致谢! :)
【问题讨论】:
-
确保
oc_product表中的数据符合归档条件。 -
是的,我创建了新产品,并使用 end_date = 14.08.2016(今天是 15.08)发布了它,一分钟后(下一个事件激活)在第一次归档后没有任何内容被归档。
-
可能所有数据(符合条件的)都已在您的第一次运行中存档。
oc_product表中可能有新数据,但尚未满足条件。可以转储oc_prdouct表中应该存档但尚未完成的数据吗? -
该事件不应该同时删除待归档产品的任何现有
oc_product_to_category记录吗?否则,产品可能仍会“附加”到另一个类别。 -
@Pieter 这只是一个新记录。无论产品是否附加到另一个类别。如果产品已过期,它将附加到“存档”(id 68)类别
标签: mysql mysql-event