Всякие неожиданости с триггерами

Тема в разделе "Базы данных", создана пользователем PHPCod3r, 6 сен 2011.

Модераторы: latteo
  1. PHPCod3r

    PHPCod3r

    Регистр.:
    7 июн 2010
    Сообщения:
    261
    Симпатии:
    25
    Вот прилаживаю тригеры, хочу переложить часть функционала на них.
    Столкнулся с такой проблемой.
    При изменении базы, хочется сохранить то что изменяю, так скажем что бы в случае чего откатить изменения...
    До этого я делал просто, создавал таблицу table_tmp, с той же структурой , а потом делал так
    PHP:
    INSERT INTO table_tmp (tdSELECT FROM table;
    Но в триггере создать таблицу не получается, можно как нить это обойти?
     
  2. jami

    jami Постоялец

    Регистр.:
    10 авг 2011
    Сообщения:
    114
    Симпатии:
    39
    Триггер может работать только с той таблицей и записями в ней, к какой операции он привязан (insert/update), либо с представлением VIEW.
    Думаю, вместо использования триггеров в данном случае гораздо лучше правильно организовать текущую структуру БД, чтобы можно было хранить историю без создания таблиц каждый раз - например в той же таблице ввести доп индекс version/date_upd - и по ним смотреть историю/выбирать наиболее актуальные записи. Либо перемещать удаляемые записи в отдельную таблицу с историей - создавать ее не нужно при этом каждый раз.