powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / TRIGGER, динамические NEW/OLD
3 сообщений из 3, страница 1 из 1
TRIGGER, динамические NEW/OLD
    #38361205
Vlad-UA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

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

заткнулся на проблеме, как динамически указывать название колонки для 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
TRIGGER, динамические NEW/OLD
    #38361305
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Динамический SQL вам тут и не поможет, насколько я понял задачу.

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

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


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