URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92287
[ Назад ]

Исходное сообщение
"как удалить старые записи greylist(exim) в mysql"

Отправлено bobotol , 19-Сен-11 15:32 
вот таблица


mysql> describe exim_greylist
    -> ;
+----------------+-----------------------+------+-----+---------------------+----------------+
| Field          | Type                  | Null | Key | Default             | Extra          |
+----------------+-----------------------+------+-----+---------------------+----------------+
| id             | bigint(20)            | NO   | PRI | NULL                | auto_increment |
| relay_ip       | varchar(80)           | YES  |     | NULL                |                |
| sender         | varchar(255)          | YES  |     | NULL                |                |
| recipient      | varchar(255)          | YES  |     | NULL                |                |
| block_expires  | datetime              | NO   |     | 0000-00-00 00:00:00 |                |
| record_expires | datetime              | NO   |     | 9999-12-31 23:59:59 |                |
| create_time    | datetime              | NO   |     | 0000-00-00 00:00:00 |                |
| type           | enum('AUTO','MANUAL') | NO   |     | MANUAL              |                |
| passcount      | bigint(20)            | NO   |     | 0                   |                |
| blockcount     | bigint(20)            | NO   |     | 0                   |                |
+----------------+-----------------------+------+-----+---------------------+----------------+

вот скрипт написал для удаления старых записей


<?php
$DBSERVER = hhhhhhh;
$DBUSER = yuuu;
$DBPASS = hhhhh;
$DB = mail;
$link = mysql_connect("$DBSERVER", "$DBUSER", "$DBPASS")
or die("Could not connect: " . mysql_error());

mysql_query("DELETE FROM exim_greylist WHERE (record_expires > DATE_ADD(now(), INTERVAL 1 HOUR)) AND (type='AUTO')");

?>

Оно то удаляет! А как вы думаете правильно всё или что-то подправить надо?


Содержание

Сообщения в этом обсуждении
"как удалить старые записи greylist(exim) в mysql"
Отправлено Aquarius , 19-Сен-11 16:27 
>[оверквотинг удален]
> $DBPASS = hhhhh;
> $DB = mail;
> $link = mysql_connect("$DBSERVER", "$DBUSER", "$DBPASS")
> or die("Could not connect: " . mysql_error());
> mysql_query("DELETE FROM exim_greylist WHERE (record_expires > DATE_ADD(now(), INTERVAL
> 1 HOUR)) AND (type='AUTO')");
> ?>
>

> Оно то удаляет! А как вы думаете правильно всё или что-то подправить
> надо?

удаляет истекающие через 1 час или позже?


"как удалить старые записи greylist(exim) в mysql"
Отправлено bobotol , 19-Сен-11 16:34 

> удаляет истекающие через 1 час или позже?

Да

Я ещё вот так могу сделать


DELETE FROM exim_greylist WHERE id  < 100000 ;



Но какое мне лучше тут id поставить ?

То я сейчас заглянул в базу у меня последний id = 4 000 000


"как удалить старые записи greylist(exim) в mysql"
Отправлено wiseman , 19-Сен-11 19:57 
>> удаляет истекающие через 1 час или позже?
> Да
> Я ещё вот так могу сделать
>
 
> DELETE FROM exim_greylist WHERE id  < 100000 ;
>

> Но какое мне лучше тут id поставить ?
> То я сейчас заглянул в базу у меня последний id = 4
> 000 000

сделайте условие record_expires > now()

UPDATE: сорри, недочитал. у вас выше все правильно прописано


"как удалить старые записи greylist(exim) в mysql"
Отправлено Aquarius , 20-Сен-11 21:41 

>> удаляет истекающие через 1 час или позже?
> Да
> Я ещё вот так могу сделать
>
 
> DELETE FROM exim_greylist WHERE id  < 100000 ;
>

> Но какое мне лучше тут id поставить ?
> То я сейчас заглянул в базу у меня последний id = 4
> 000 000

блин
удаляет (истекающие через 1 час или позже)?
или
удаляет (истекающие) через 1 час или позже?