Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / TRIGGER, динамические NEW/OLD / 3 сообщений из 3, страница 1 из 1
09.08.2013, 16:01:58
    #38361205
Vlad-UA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRIGGER, динамические NEW/OLD
Добрый день,

пробую создать треггер собирающий лог изменений, который бы не зависил от изменений вносимых в отслеживаемую таблицу (добавление/удаление колонок, изменение их названий)

заткнулся на проблеме, как динамически указывать название колонки для NEW/OLD (которая будет браться из SELECT COLUMN_NAME FROM information_schema.COLUMNS)

погуглил ... но решения не нашел
http://habrahabr.ru/qa/24082/
http://stackoverflow.com/questions/14703844/mysql-update-trigger-find-changed-columns
http://forums.mysql.com/read.php?99,578153,578153#msg-578153


помогите плиз может кто уже решил данную проблему и возможно не нужно писать свой "велосипед"/триггер а есть что-то "родное" от MySQL
заранее спасибо


PS Динамический SQL как я понял нельзя использовать в тригере :(
Хотя нашел статью что как-то можно через "временные таблицы" выкрутится,
но к сожалению я новичек в MySQL и не смог понял как это реализовать
http://codewordhank.com/sql-server/dynamic-sql-and-a-trigger-gotcha/
...
Рейтинг: 0 / 0
09.08.2013, 16:52:11
    #38361305
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRIGGER, динамические NEW/OLD
Динамический SQL вам тут и не поможет, насколько я понял задачу.

Имхо, выход один - после каждого изменения структуры таблицы вызывайте скрипт, который пересоздаст логирующие триггера для этой таблицы.

Правда, в MySQL логировать изменения триггерами - не слишком хороший вариант. Триггера не всегда срабатывают. Например, не срабатывают при truncate table и при действиях, вызываемых внешних ключами.
...
Рейтинг: 0 / 0
09.08.2013, 18:40:08
    #38361497
Vlad-UA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRIGGER, динамические NEW/OLD
в принципе могбы помочь ... что-то типа такого >>> 'NEW.' + var_column_name
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / TRIGGER, динамические NEW/OLD / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]