SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.06.2011 17:00:47

tatarin732
Участник
Зарегистрирован: 26.06.2011
Сообщений: 5

удаление данных через заданный промежуток времени

Есть таблица, надо чтобы после того как в неё попадут данные они удалились через заданный промежуток времени, причём каждые данные удалились именно в свой промежуток времени.
Спасибо!

Неактивен

 

#2 26.06.2011 19:44:53

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: удаление данных через заданный промежуток времени

1) Записывай те время жизни в поле записи.
2) По запуску cron-а или Mysql Event-а , стирайте то что надо.

Отредактированно evgeny (26.06.2011 19:45:38)

Неактивен

 

#3 26.06.2011 20:18:04

tatarin732
Участник
Зарегистрирован: 26.06.2011
Сообщений: 5

Re: удаление данных через заданный промежуток времени

evgeny написал:

1) Записывай те время жизни в поле записи.
2) По запуску cron-а или Mysql Event-а , стирайте то что надо.

evgeny а вы не могли бы расписать подробней как это делать дело в том что сказать что я новичок, значит не чё не сказать, а скрипт этот очень нужен.
Спасибо.

Неактивен

 

#4 26.06.2011 22:31:41

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: удаление данных через заданный промежуток времени

Ваши записи:


INSERT INTO mytable (id,text,create_date) VALUES(1,'kuku',NOW());
INSERT INTO mytable (id,text,create_date) VALUES(2,'muku',NOW());
INSERT INTO mytable (id,text,create_date) VALUES(3,'ruku',NOW());


кронам или евентом раз в минуту запускаем

DELETE FROM mytable WHERE create_date<NOW()-INTERVAL 3 HOUR;
 

Отредактированно evgeny (26.06.2011 22:32:37)

Неактивен

 

#5 10.07.2011 19:19:16

tatarin732
Участник
Зарегистрирован: 26.06.2011
Сообщений: 5

Re: удаление данных через заданный промежуток времени

evgeny написал:

Ваши записи:


INSERT INTO mytable (id,text,create_date) VALUES(1,'kuku',NOW());
INSERT INTO mytable (id,text,create_date) VALUES(2,'muku',NOW());
INSERT INTO mytable (id,text,create_date) VALUES(3,'ruku',NOW());


кронам или евентом раз в минуту запускаем

DELETE FROM mytable WHERE create_date<NOW()-INTERVAL 3 HOUR;
 

прошу прошения за непонятливость но я так и не понял как использовать этот скрипт и куда его вставить в файле
это код моего файла

<?php
include ("bloks/bd.php");

if (isset($_POST['naim']))   {$naim = $_POST['naim'];    if ($naim == '') {unset ($naim);}}
if (isset($_POST['nik']))    {$nik = $_POST['nik'];      if ($nik == '')  {unset ($nik);}}
if (isset($_POST['tema']))   {$tema = $_POST['tema'];    if ($tema == '') {unset ($tema);}}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Обработчик</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="800" border="0" align="center" class="main_border">
  <tr>
    <td width="545">
   
<?php
   if (isset($naim) &&  isset($nik) && isset($tema))
{
$result = mysql_query ("INSERT INTO new_konf (naim,nik,tema) VALUES ('$naim', '$nik', '$tema')");

   if ($result == 'true') {echo "<p>данные успешно занесены</p> ";}
   else {echo " <p> Вы не все поля заполнили </p> ";}
}

   else
{
echo "<p>вы ввели не всю инфу</p>";
}


?>
   
    </td>
    <td width="129">&nbsp;</td>
  </tr>
  <tr>
    <td>
    </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>

Неактивен

 

#6 11.07.2011 00:04:51

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: удаление данных через заданный промежуток времени

Неактивен

 

#7 11.07.2011 00:14:04

tatarin732
Участник
Зарегистрирован: 26.06.2011
Сообщений: 5

Re: удаление данных через заданный промежуток времени

я уже понял что это events! Но я не понимаю как это работает  так как я совсем начинающий и не знаю английский.

Неактивен

 

#8 11.07.2011 21:58:44

DJK
Завсегдатай
Зарегистрирован: 09.08.2009
Сообщений: 32

Re: удаление данных через заданный промежуток времени

DELIMITER //
CREATE EVENT `delete_data`
    ON SCHEDULE
      EVERY 1 HOUR
      ON COMPLETION NOT PRESERVE ENABLE
    DO
      BEGIN
    DELETE FROM mytable WHERE create_date<NOW()
      END //
DELIMITER ;

Вот небольшой пример. Данные будут удаляться каждый час, но будут удалятся записи что были сделаны до срабатывания события.

Неактивен

 

#9 12.07.2011 19:50:07

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: удаление данных через заданный промежуток времени

DJK, а какой смысл для циклического события имеет флаг ON COMPLETION?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson