[英]MYSQL EVENT or Something else ? trying to track “clicks for links”
我到过这个网站和Google,一直在想办法解决问题。
我创建了一个脚本来跟踪我们出售给会员的网站流量,一切运行良好,并显示我们想要的所有数据。 它甚至可以正确跟踪转换。
我当前的问题是-关闭流量已全部交付的记录(成员)的流量。
阅读一些文章后,运行事件似乎很完美,但是我似乎无法弄清楚这部分。
它还需要运行多次...
基本上,我不熟悉事件/触发器,也不知道该在这里做什么
例; 会员购买了1000次点击-全部已交付,但未更改状态为完成。
CREATE EVENT newEvent ON SCHEDULE EVERY 1 Minute DO UPDATE links SET status = 'completed' WHERE bought = '0';
数据库结构:
ID-增量
userid-成员userid
购买-显示剩余的点击次数
计数-显示获得的点击
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.