【问题标题】:Move Row from One MySQL Table to Other after 30 Minutes30 分钟后将行从一个 MySQL 表移动到另一个
【发布时间】:2015-12-24 01:36:39
【问题描述】:

我确实已经研究了一段时间,但还没有想出最好的方法。

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

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

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

【问题讨论】:

    标签: php mysql events scheduled-tasks


    【解决方案1】:
    1. 在数据库中创建一个名为 whentomove 的列,插入时带有 current_timestamp
    2. 创建一个脚本,检查与当前 time() 相差 1800 秒(也称为 30 分钟)的行并移动它们。
    3. 为该文件 following these instructions 创建一个每分钟或更短时间运行一次的 cronjob。

    #1

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

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

    或者通过PHPmyadmin设置whentomove到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 运行。祝你好运!

    【讨论】:

      猜你喜欢
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多