我一直在这个网站和谷歌,试图解决我的问题。
我创建了一个脚本来跟踪我们向会员销售的网站流量,一切都很好,并显示我们想要的所有数据。它甚至可以正确跟踪转换。
我目前的问题是 - 关闭流量已全部交付的记录(成员)的流量。
在阅读了一些文章之后,举办一个活动似乎很完美,但我似乎无法弄明白这一部分。
它还需要运行多次......
基本上,我不熟悉事件/触发器,不知道在这做什么
实施例;会员已购买1000次点击 - 所有已经交付,而不是将状态更改为已完成。
CREATE EVENT newEvent ON SCHEDULE EVERY 1 Minute DO UPDATE links SET status = 'completed' WHERE bought = '0';
数据库结构:
ID - 增量
userid - 成员用户ID
已购买 - 显示剩余点击次数
计数 - 显示已投放的点击次数
pkgamount - 存储购买的点击次数
感谢。
答案 0 :(得分:2)
不要使用事件调度程序,使用在更新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 ;
答案 1 :(得分:1)
这是您创建和运行活动所需要做的事情。有一些非直观的猴子业务与分隔符,并打开事件调度程序。
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;