powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по отладке триггеров
2 сообщений из 2, страница 1 из 1
Вопрос по отладке триггеров
    #38691772
VonHamster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация следующая (постараюсь описать подробно картину):
1. есть таблица t1 в базе db1
2. есть таблица t2 в базе db2
3. есть таблица log в базе db1
4. Они на одном сервере, полные права для пользователя, под которым к ним происходит коннект.
5. На таблицу t1 ставлю триггер, который преобразует данные и перекидывает в t2 (на добавление и обновление), на удаление стоит удаление соответствующей записи из t2.
6. На таблицу t2 ставлю триггер, который записывает изменения в лог-таблицу (идентификатор, тип изменения, старое и новое значение, если есть).

Запросы в триггерах простые (логики нет, просто преобразование).

Проблема в следующем:
1. когда данные пишутся в t1 триггеры срабатывают не всегда (тоесть часть данных попадает в t2, а часть нет (зависимость от данных выявить не удалось, тоесть при одном обновлении - одни не попали, при другом - другие)). При этом таблица логов исправно фиксирует измененные в t2 данные, и не фиксирует те, что пропущены.
2. Когда запускаю обновление принудительно (update t1 set field1=field1) - все данные обновляются нормально в t2.

Вопросы:
1. Каковы возможные причины такого поведения?
2. Как можно отследить, что происходит в базе, отловить причину, почему не запускается триггер?
...
Рейтинг: 0 / 0
Вопрос по отладке триггеров
    #38691787
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VonHamsterСитуация следующая (постараюсь описать подробно картину):
1. есть таблица t1 в базе db1
2. есть таблица t2 в базе db2
3. есть таблица log в базе db1
4. Они на одном сервере, полные права для пользователя, под которым к ним происходит коннект.
5. На таблицу t1 ставлю триггер, который преобразует данные и перекидывает в t2 (на добавление и обновление), на удаление стоит удаление соответствующей записи из t2.
6. На таблицу t2 ставлю триггер, который записывает изменения в лог-таблицу (идентификатор, тип изменения, старое и новое значение, если есть).

Запросы в триггерах простые (логики нет, просто преобразование).

Проблема в следующем:
1. когда данные пишутся в t1 триггеры срабатывают не всегда (тоесть часть данных попадает в t2, а часть нет (зависимость от данных выявить не удалось, тоесть при одном обновлении - одни не попали, при другом - другие)). При этом таблица логов исправно фиксирует измененные в t2 данные, и не фиксирует те, что пропущены.
2. Когда запускаю обновление принудительно (update t1 set field1=field1) - все данные обновляются нормально в t2.

Вопросы:
1. Каковы возможные причины такого поведения?
2. Как можно отследить, что происходит в базе, отловить причину, почему не запускается триггер?


=======
наверняка спецы получше придумают , но я пока сделал так.

таблица runs(id,datetime,procname,extra)
stored procedure(datetime,name,extra);

и где мне надо отследить факт запуска, или не запуска, срабатывания или нет какойто секции кода(условного блока, сколько раз цикл)
вставляю временно вызов процедуры и пишу туда информацию которая мне поможет по логам понять почему чтото не работало...

кстате аналогично часть данных преобразованых не попадала... оказалось что в вложеной логике ифов(преобразование зависит от того что и как менялось) я упустил один возможный вариант.

и потом по логу смотрю как у меня поэтапно всё было.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по отладке триггеров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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