我想在每周的特定日期(星期五20:00)将数据从一个表转移到另一个表。我还想在每个星期日重置第一个表中的数据。

当我运行此行时,它将正确的数据发送到正确的表(table1)。

$sql = "INSERT INTO table1 (Name, Email, Phone, Work, Week)
    VALUES ('$name', '$email', '$phone', '$work', '$weekNumber')";


当我运行此行时,它会从table1到table2发送一个随机行。它不会在表1中存储任何新数据,而仅使用已存储在表1中的数据。

$sql = "INSERT INTO table2 (Name, Email, Work, Week) SELECT Name, Email, Work, Week FROM table1 Where Week = ('$weekNumber') ORDER BY RAND() LIMIT 1";


所有这些代码都写在一个php文件中,我在phpMyadmin中查看表。

那里有任何关于如何使table1的数据在每个星期五20:00传输到table2的建议的sql-gurus吗?提前欣赏一下。请记住,我是刚开始编写sql代码,并且本周才开始使用数据库,因此,我非常感谢特定的代码示例,而不是关于如何理解目标的一般信息。结合将是最好的。

最佳答案

您可以使用MySQL中的事件计划程序轻松完成此操作

https://www.sitepoint.com/how-to-create-mysql-events/

http://www.mysqltutorial.org/mysql-triggers/working-mysql-scheduled-event/

例如,您可以每天使用以下命令执行特定任务:

 DELIMITER ;;
    CREATE EVENT UpdateData ON SCHEDULE EVERY DAY STARTS '2016-10-10 00:00:00' -- This is scheduled to start from '2016-10-10' and updates data every day
      DO BEGIN
        UPDATE table1 SET Status = 1 WHERE Status = 0;
        UPDATE table2 SET Status = 1 WHERE Status = 0;
     END;;
 DELIMITER ;

07-24 18:05
查看更多