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

Move Row from One MySQL Table to Other after 30 Minutes

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

我有 MySQL 分贝。我需要一种方法,在行进入第一个 table.

30 分钟后自动将一个 table 中的行移动到另一个 table

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

还有其他选择吗?诚然,我没有代码可以分享。

  1. 在您的数据库中创建一个名为 whentomove 的列,在插入时使用 current_timestamp
  2. 创建一个脚本来检查与当前 time() 相差 1800 秒(即 30 分钟)的行并移动它们。
  3. 创建该文件的 cronjob following these instructions,每分钟或更短时间运行一次。

#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,同时遵循这些说明。祝你好运!