2016-06-28 19 views
5

Czy można ustawić lub zainicjować zapytanie w MySQL dla każdego nowego połączenia?Jak automatycznie wywołać zapytanie o każde nowe połączenie w MySQL?

Kiedy połączenie zostanie utworzone, automatycznie wywoła procedurę lub zapytanie wyboru?

Dowolny skrypt lub opcja konfiguracji dla tego?

+0

przykładem przypadku użycia – 1000111

+0

Chcę wybrać niektóre dane i zapisać wartości w zmiennych dla każdej sesji .. wartość jest różna dla każdej sesji jak zmiany danych. –

+0

@drew: tak. Potrzebuję tego. Brak opóźnień. zapytanie powinno wywoływać każde nowe połączenie. –

Odpowiedz

10

Możesz sprawdzić init_connect zmiennej:

Ciąg być wykonywane przez serwer dla każdego klienta, który łączy. Łańcuch składa się z jednej lub kilku instrukcji SQL, oddzielonych znakami średnika od . Na przykład każda sesja klienta rozpoczyna się od domyślnie z włączonym trybem automatycznego zatwierdzania.

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_init_connect

+0

Zastrzeżenie: 'init_connect' nie jest wykonywane dla' root'. Jest to silny powód do oddzielnego użytkownika (-ów) dla kodu aplikacji. –

+0

Nie ma opóźnienia w tym rozwiązaniu (inne niż czas potrzebny na uruchomienie zapytań). –

+0

Chodzi o to, że zapytanie jest uruchamiane natychmiast po połączeniu; nie ma opóźnienia (opóźnienia) przed rozpoczęciem zapytania, co może mieć miejsce w przypadku niektórych mechanizmów odpytywania. –

3

Jeśli już nie tylko narzędzie mysql-client, ale dodatkowy dowolny warstwy aplikacji, jest więcej jedi stylu :) Można tworzyć proste dekorator dla klasy Twojego łącznika, który będzie wykonywanie niektórych zapytań po wywołaniu utworzonej instancji (w konstruktorze)/connect.

Nadzieja pomaga

Powiązane problemy