Задавайте вопросы, мы ответим
Вы не зашли.
Как на MySQL 5.0 организовать очистку от старых записей. Хочу например чтобы база имела 500 записей и не больше. При добавлении очередной старая запись должна удалятся. На MSSQL 2000 я это делал с помощью триггера, но вот пришлось столкнуться с MySQL. Потратил день на поиске в интернете, так и не нашел рабочего примера.
Я так понимаю что можно сделать процедуру или триггер. Мне больше по душе триггер - пробывал так сделать
В MySQL Administrator в Query Browser ввожу
create trigger `del_str` after insert on `mazut`
for each row
begin
select count(*) into @n from mazut;
if @n > 500 then begin
select min(idmazut) into @min from mazut;
delete from mazut where idmazut = @min;
end;
end if;
end;
На выполнение запроса - ошибка 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near '' at line 4
Надо ли объявлять где то переменные и как?..
Может ли триггер работать в той же самой таблице? В примерах которые я нашел триггер выполняет действия в другой таблице
Help!!!
Неактивен
По умолчанию ; является разделителем и происходт попытка выполнить первые 4 строчки как отдельную команду, отсюда и ошибка 1064.
Нужно.
Неактивен
как же мне тогда поступить?
Неактивен
Добавлять данные с помощью процедуры, которая будет удалять лишние при этом.
Неактивен
данные добавляются через odbc...сторонняя программа выполняет insert и данные поступают в таблицу mazut.
А можно сделать процедуру чтоб она после insert проверяла количество записей и удаляла ненужное?
Или как то чистить базу раз в день например в определнное время? А может процедура по расписанию выполняться или ее еще вызывать надо?-в этом вопросе я вообще ничего не знаю...до этого не приходилось с ними связываться
Подкиньте пожалуйста пример процедуры.
Спасибо за оперативные ответы
Неактивен
В 5.1 есть планировщик событий, но сам никогда не пользовался, поэтому ничего конкретного сказать не могу.
http://dev.mysql.com/doc/refman/5.1/en/ … rview.html
Подробнее о синтаксисе создания процедур:
http://dev.mysql.com/doc/refman/5.1/en/ … edure.html
Неактивен