Имя: Пароль:
IT
Веб-мастеринг
MySQL: Как может возникнуть рассинхронизация между таблицами, если есть триггеры?
,
0 Доктор Манхэттен
 
03.10.18
16:42
Есть две таблицы, т1 и т2

Стоит триггер, после изменения т1, обновлять данные в т2

Но так произошло, что в таблице т1 некоторые данные новые (сегодняшние), а в т2 те же самые данные - вчерашние.

Как такое возможно?

Сейчас проверяю, перезаписываю эти строки в т1 сам лично, и в т2 они нормально обновляются.
1 Cool_Profi
 
03.10.18
16:44
Грохнули триггер, залили данные, восстановили триггер
2 Доктор Манхэттен
 
03.10.18
16:46
(1) Божатся что руками не лезли в базу. А через интерфейс ничего грохнуть нельзя.
3 Cool_Profi
 
03.10.18
16:50
(2) Божиться можно как угодно
4 Доктор Манхэттен
 
03.10.18
16:51
(3) Вариант что грохнули триггер больше не рассматриваем
5 scanduta
 
03.10.18
17:00
(0)Если ты не знал действия триггера можно отключить, также он не будет работать в bulk insert
6 Доктор Манхэттен
 
03.10.18
17:23
(5) Вариант что я не знал что триггер можно отключить не рассматриваем.

А про то что он не работает в bulk insert расскажи пожалуйста поподробнее. Что ты имеешь в виду под bulk insert?
7 Cool_Profi
 
03.10.18
17:24
(5) Какая булка в мыскле? Давно она там появилась?
8 Cool_Profi
 
03.10.18
17:25
(5) Да и в той же мыскле отключить триггер сложноватенько будет. Проще удалить его и потом пересоздать
9 Доктор Манхэттен
 
03.10.18
17:29
(7) Ну булка то есть, какая-никакая. Но триггеры в ней отрабатывают как положено. Что имел в виду (7) не понятно.
10 scanduta
 
03.10.18
17:34
(7)(9)  не увидел, думал MS SQL
11 Salimbek
 
03.10.18
18:14
(0) Да кто ж его знает, что там у вас наворочено. Например в т1 пишем ИД и не контролируем на уникальность, а в т2 по этому ключу уникальный индекс. Записали в т1, триггером ушла запись в т2. Потом еще раз записали этот же ключ в т1, и в триггере произошла ошибка. Или таблица т2 была заблокирована и запись не удалась.
12 Доктор Манхэттен
 
03.10.18
18:20
(11) Нет, так не может быть. В (0) я писал, что перезаписывал те данные которые в прошлый раз не обновились когда я на них не смотрел, и при мне они обновились через триггер как положено.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший