30分钟后将行从一个MySQL表移动到其他表

时间:2015-12-24 01:36:40

标签: php mysql events scheduled-tasks

我现在已经研究了一段时间了,还没有找到最好的方法。

我有一个MySQL dB。我需要一种方法在行进入第一个表后30分钟自动将一个表中的行移动到另一个表。

我知道scheduled_events是最好的方式,但我不确定GoDaddy是否支持它,因为它是共享主机。 (请记住,他们显然也不知道)

还有其他选择吗?我承认没有代码可以分享。

1 个答案:

答案 0 :(得分:0)

  1. 在数据库中创建名为whentomove的列,并在插入
  2. 上添加current_timestamp
  3. 创建一个脚本,检查当前time()与1800秒不同(AKA 30分钟)的行并移动它们。
  4. 创建一个每分钟或更短时间运行的文件following these instructions的cronjob。
  5. #1

    因此,基本上对于#1,您可以在数据库中添加whentomove列后执行类似的操作:

    $time = time();
    mysqli_query($connection, "INSERT INTO oldtable (....,whentomove)  VALUES (....., $time)");
    

    或者通过PHPmyadmin将字段的默认值设置为CURRENT_TIMESTAMP

    #2

    <?php
    //Database connection stuff
    $time = time() - 1800;
    mysqli_query($connection, "INSERT INTO newtable SELECT * FROM oldtable WHERE whentomove < $time");
    mysqli_query($connection, "DELETE FROM oldtable WHERE whentomove < $time");
    ?>
    

    #3

    按照这些说明运行第二个脚本作为cron。祝你好运!