2015-10-03 32 views
0

当记录的日期(即将到来)等于今天的日期时,我试图将记录从一个表(即将到来)移动到另一个表(今天)。我将如何去使用phpmyadmin中的循环事件?phpmyadmin:数据库事件

+1

为什么不能有一个表和一些分区? – Strawberry

+0

我更想知道是否有可能做我要求的东西(我大多是初学者),而不是关心简单性。你是对的! –

+0

你的建议/计划是一个糟糕的体系结构。它使事情过于复杂而没有提供任何真正的好处。你想再想一遍。 – arkascha

回答

0

您当然可以使用每天午夜(实际上不久后)运行的MySQL事件。你可以做任何你想要的事情。这是一个例子。

CREATE EVENT `midnight_event` 
    ON SCHEDULE 
     EVERY 1 DAY STARTS '2015-10-10 00:00:00' 
    ON COMPLETION PRESERVE 
    DISABLE ON SLAVE 
    DO BEGIN 

    START TRANSACTION; 

    INSERT 
     INTO todays_table 
    VALUES (col, col, col, col) 
    SELECT col, col, col 
     FROM pending_table 
    WHERE time_stamp >= CURDATE() 
     AND time_stamp < CURDATE() + INTERVAL 1 DAY; 

    DELETE 
     FROM pending_table 
    WHERE time_stamp >= CURDATE() 
     AND time_stamp < CURDATE() + INTERVAL 1 DAY; 

    COMMIT; 
END 

其他人已经评论了这种数据设计的智慧,并且每行都从一个表格移动到另一个表格。他们的评论有很大的价值。如果你想要一个包含当前事件的“表”,请考虑一个视图。这个看起来就像我提到的事件一样。

CREATE OR REPLACE VIEW todays_table AS 
SELECT * 
    FROM pending_table 
WHERE time_stamp >= CURDATE() 
    AND time_stamp < CURDATE() + INTERVAL 1 DAY