Trigger pobierający dane z tej samej tabeli, MySQL server has gone away |
Trigger pobierający dane z tej samej tabeli, MySQL server has gone away |
13.07.2021, 23:37:34
Post
#1
|
|
Grupa: Moderatorzy Postów: 6 070 Pomógł: 860 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Witam po dłuższej przerwie.
Mam pewien problem, może ktoś będzie w stanie coś doradzić. Mam triggera na tabeli X postawionego AFTER UPDATE. Czasami (bo nie zawsze, nie ma reguły) wykonanie polecenia UPDATE na tabeli X i kolumnach ujętych w triggerze (m.in. warunek IF) powoduje zerwanie połączenia z bazą (MySQL server has gone away). Metodą "zakomentuj frament -> uruchom" doszedłem do tego, że winny jest SELECT wewnątrz triggera, który odpytuje tą samą tabelę. Po jego usunięciu ok. 30 prób wykonania UPDATE przebiega bez problemu, gdy SELECT jest w triggerze to połączenie jest zrywane czasem za 3, czasem za 5, czasem za 9 wywołaniem pod rząd - nie ma zasady, jest w zasadzie losowość. Samo polecenie UPDATE wykonuje się szybko zarówno w momencie gdy wykonuje się prawidłowo, jak i gdy zrywa połączenie (komunikat jest od razu). Testy przeprowadzałem w phpMyAdmin klikając w kółko: SQL -> wklej zapytanie -> wykonaj, SQL -> wklej... więc nie było to testowane na zasadzie pętli tylko ręcznie. Testowe zapytanie było na zasadzie UPDATE X SET pole = 1 WHERE id = 123; gdzie trigger odpala w sobie SELECTa jeśli NEW.pole = 1. Podsumowując: - trigger na tabeli X, - wewnątrz triggera SELECT na tabeli X, - czasem zrywanie połączenia z bazą, czasem nie. Czy ktoś spotkał się z podobnym przypadkiem? |
|
|
15.07.2021, 21:31:21
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Pokaż ten trigger cały
|
|
|
Wersja Lo-Fi | Aktualny czas: 28.03.2024 - 09:51 |