Хозяйке на заметку: Mysql и события, триггеры

Автор Varkus, 30 мая 2013, 00:01:30

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Varkus

Сегодня с нескрываемой радостью обнаружил, что MySql начиная с версии 5.1 поддерживает планировщик событий!
Для его активации необходимо в файле my.cnf прописать или разкомментировать строку event_scheduler=ON

Далее прописываем имя события,

если задача одноразовая то ставим дату и время события,
если задача цикличная то: дата-время начала цикла, дата-время окончания цикла, период.
Период может измеряться ГОДАМИ, КВАРТАЛАМИ, месяцами...день, час, минута, секунда.

Далее вписываем необходимый скрипт

Также возможно добавление комментария.

Еще из плющек есть ТРИГГЕРЫ, т.е. функция выполняемая при обращение к таблице:

Пишем название триггера

выбираем таблицу, для которой пишется триггер

выполнять функцию ДО или ПОСЛЕ того как что-то(кто-то) работал с таблицей

Тип отслеживаемых событий: Insert, Update, Delete (Select не поддерживается, ХЗ по чему, а было бы здорово)

Пишем сам скрипт.

Мне не известно, нужно ли для активации триггеров производить какие-нибудь нстройки в my.cnf
Иоанн К.

Инженеры построили титаник - пастух ковчег
Земля заражена вирусом - человечество - где бы он не появился начинает плодиться и уничтожать всё вокруг.(Mr.Smith)

Извините за грамматику - в школе была твердая тройка

UDØXAU

Константин, UDØXAU, 73! :)

Varkus

Не знаю на счет бэкапов, но народ в основном таким образом архивирует логи, чистит кэши.

Вылез вчера один момент не очень приятный:
1) нужно дождаться запись в таблицу
2) сразу за ней сделать еще одну запись в ТУ ЖЕ таблицу(триггером)
НО
триггер отказывается работать, ОКАЗЫВАЕТСЯ при срабатывании триггера, он блокирует таблицу, бля. И соответственно, сам же не может в неё писать. Видимо придеться воспользоваться промежуточной таблицой, т.е. мой триггер пишет в неё, а её тригер уже возвращает обратно, в ту таблицу куда надо было писать изначально. Снова костыли понеслись....

на хабре тип говорит, был на конференции Оракул, общался с теми кто код MySql теперь переписывает. В его слов они просто в негодовании от той кривости с которой были написаны эти события и триггеры. При тестировании бывало, что событие могло просто проигнорироваться несколько раз подряд.

Печаль, но выбора у меня не много, использовать крон тоже особого желания нет.
Иоанн К.

Инженеры построили титаник - пастух ковчег
Земля заражена вирусом - человечество - где бы он не появился начинает плодиться и уничтожать всё вокруг.(Mr.Smith)

Извините за грамматику - в школе была твердая тройка

UDØXAU

Мне вообще непонятно о чём ты :) Триггеры какие-то. Я дальше записи в БД в mysql не продвинулся, писал так, для себя кое-что... Так что это для меня из области шаманства
Константин, UDØXAU, 73! :)