我已经浏览了这个网站和谷歌,试图找到一个解决方案。
我创建了一个脚本来跟踪我们出售给会员的网站流量,一切都很好,并显示我们想要的所有数据。它甚至会正确地跟踪转换。
我目前的问题是——关闭流量已全部交付的记录(成员)的流量。
在阅读了一些文章后,举办一场活动似乎是完美的,但我似乎无法理解这一部分。
它还需要运行多次。。。
基本上,我不熟悉事件/触发器,也不知道在这里该做什么
示例;会员已购买1000次点击-全部已交付,未将状态更改为已完成。
CREATE EVENT新事件按计划每1分钟做UPDATE链接SET status="completed"WHERE bued="0";
数据库结构:
ID-增量
userid-成员userid
buy-显示剩余点击
count-显示的点击量
pkgamount-存储点击购买
谢谢。
不要使用事件调度程序,使用更新links
表时运行的触发器:
DELIMITER $$
CREATE TRIGGER link_completed
BEFORE UPDATE ON links
FOR EACH ROW
BEGIN
IF NEW.bought = 0
THEN SET NEW.status = 'completed';
END IF;
END; $$
DELIMITER ;
以下是创建和运行事件所需的操作。使用分隔符和打开事件调度程序会带来一些不直观的麻烦。
DELIMITER $$
SET GLOBAL event_scheduler = ON$$ -- required for event to execute but not create
CREATE EVENT `Event1`
ON SCHEDULE EVERY 5 MINUTE
ON COMPLETION PRESERVE
COMMENT 'disable delivery when quota used up'
DO
BEGIN
UPDATE links SET status = 'completed' WHERE bought = '0';
END
$$
DELIMITER ;
请注意!您可能想说WHERE bought <= 0
,这样您就可以正确地使用bought
列上的索引,并且在特定记录低于零时可以正确地设置状态。
如果我是你,我会用这个说法。
UPDATE links SET status = 'completed', bought = 0 WHERE bought <= 0;