如何将数据标记为“历史”并将其存储在不同的表中

时间:2014-09-02 23:09:16

标签: mysql sql move

因为我的网页上有很多流量,其中有一个在线聊天我的mysql表"消息"人满为患。我不想使用TIMESTAMPDIFF删除数据,但我想将它们移到历史悠久的"表。无论如何在10分钟(600s)之后将它们移到历史性的桌子上?

<!DOCTYPE
<html lang="en">
<head>
</head>
<body>
<form method="post" action="test.php">
<label for="firstname">First name:</label>
<input type="text" id="firstname" name="firstname" /><br />
<input type="submit" value="Report Abduction" name="submit" />
</form>
</body>
</html>

HTML(测试)文件

<html>
<head>
  </head>
<body>

<?php
include("delete.php");
$first_name = $_POST['firstname'];

$dbc = mysqli_connect ('localhost','julianbuchel','****','deletecontent')
or die("Ooops, we couldn't connect to the database...");


$query = "INSERT INTO messages 
VALUES ('$first_name')";



if (!mysqli_query($dbc,$query)) {
  die('Error: ' . mysqli_error($dbc));
}

mysqli_close($dbc);


echo 'Thanks';
?>

</body>
</html>

PHP(测试)文件

<?php
    $server = 'localhost';
    $user = 'julianbuchel';
    $password = '******';

    $link = mysql_connect($server,$user,$password);
    $db = mysql_select_db('test');
    $ssql = "DELETE FROM messages";
    $r = mysql_query($ssql, $use);
?>

2 个答案:

答案 0 :(得分:1)

好的,谢谢你的想法。我所做的是我在我的mysql数据库中设置了一个event_schedule bei放入命令

USE GLOBAL event_schedule ='ON'

than:CREATE EVENT name_of_event       每个小时约1小时       DO DELETE FROM table_name

我知道这不是我问题的完美答案,但这非常合适!

答案 1 :(得分:0)

Ondkloss对cron工作的建议是好的(特别是如果你是一个shell /脚本人)。如果您对数据库本身更熟悉,MySQL确实有一个调度程序:http://dev.mysql.com/doc/refman/5.1/en/events.html

除非我遗漏了某些内容,否则你的DELETE语句将会删除所有内容。如果你的架构支持它,那么像这样(未经测试的)语句如何:

DELETE FROM messages
WHERE message_time <= date_sub(now(), interval 10 minute)