30 分钟后将行从一个 MySQL Table 移动到其他
Move Row from One MySQL Table to Other after 30 Minutes
我真的已经研究了一段时间了,还没有想出最好的方法。
我有 MySQL 分贝。我需要一种方法,在行进入第一个 table.
30 分钟后自动将一个 table 中的行移动到另一个 table
我知道 scheduled_events 是最好的方法,但是我不确定 GoDaddy 是否支持它,因为它是共享主机。 (请记住,他们显然也不知道)
还有其他选择吗?诚然,我没有代码可以分享。
- 在您的数据库中创建一个名为 whentomove 的列,在插入时使用 current_timestamp
- 创建一个脚本来检查与当前
time()
相差 1800 秒(即 30 分钟)的行并移动它们。
- 创建该文件的 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,同时遵循这些说明。祝你好运!
我真的已经研究了一段时间了,还没有想出最好的方法。
我有 MySQL 分贝。我需要一种方法,在行进入第一个 table.
30 分钟后自动将一个 table 中的行移动到另一个 table我知道 scheduled_events 是最好的方法,但是我不确定 GoDaddy 是否支持它,因为它是共享主机。 (请记住,他们显然也不知道)
还有其他选择吗?诚然,我没有代码可以分享。
- 在您的数据库中创建一个名为 whentomove 的列,在插入时使用 current_timestamp
- 创建一个脚本来检查与当前
time()
相差 1800 秒(即 30 分钟)的行并移动它们。 - 创建该文件的 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,同时遵循这些说明。祝你好运!