簡體   English   中英

MYSQL EVENT還是其他? 嘗試跟蹤“鏈接點擊”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM