Автор Тема: Хозяйке на заметку: Mysql и события, триггеры  (Прочитано 4853 раз)

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

Оффлайн Varkus

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

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

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

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

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

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

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

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

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

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

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

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

Оффлайн UDØXAU

  • Модераторы
  • Ветеран
  • *****
  • Пол: Мужской
бекапить им можно?

Оффлайн Varkus

  • white
  • Модератор
  • Ветеран
  • *****
  • Пол: Мужской
  • black
Не знаю на счет бэкапов, но народ в основном таким образом архивирует логи, чистит кэши.

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

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

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


Оффлайн UDØXAU

  • Модераторы
  • Ветеран
  • *****
  • Пол: Мужской
Мне вообще непонятно о чём ты :) Триггеры какие-то. Я дальше записи в БД в mysql не продвинулся, писал так, для себя кое-что... Так что это для меня из области шаманства