2016-06-28 2 views
5

Ist es möglich, eine Abfrage in MySQL für jede neue Verbindung zu setzen oder zu initialisieren?Wie wird automatisch eine Abfrage für jede neue Verbindung in MySQL aufgerufen?

Wann immer eine Verbindung erstellt wird, ruft sie automatisch eine Prozedur oder eine Auswahlabfrage auf?

Irgendein Skript oder Konfigurationsoption dafür?

+0

exemplifizieren Ihren Anwendungsfall – 1000111

+0

Ich möchte einige Daten auszuwählen und Werte in Variablen für jede Sitzung speichern .. Wert ist für jede Sitzung als Datenänderungen unterschiedlich. –

+0

@drew: ja. Ich brauche das. Keine Latenz Abfrage sollte jede neue Verbindung aufrufen. –

Antwort

10

Sie möchten init_connect Variable überprüfen:

Eine Zeichenfolge von dem Server für jeden Client ausgeführt werden, die verbindet. Die Zeichenfolge besteht aus einer oder mehreren SQL-Anweisungen, die durch Semikolonzeichen getrennt sind. Beispielsweise beginnt jede Clientsitzung mit Standard bei aktiviertem Autocommit-Modus.

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

+0

Vorbehalt: 'init_connect' wird nicht für' root' ausgeführt. Dies ist ein starker Grund für separate Benutzer für den Anwendungscode. –

+0

In dieser Lösung gibt es keine Wartezeit (abgesehen davon, wie lange es dauert, die Abfragen auszuführen). –

+0

Der Punkt ist, dass die Abfrage sofort nach der Verbindung ausgeführt wird; Es gibt keine Verzögerung (Latenz) vor dem Starten der Abfrage, wie es bei einigen Abrufmechanismen vorkommen kann. –

3

Wenn haben Sie nicht nur mysql-Client-Tool, sondern zusätzlich jede Anwendungsschicht, gibt es mehr jedi-Stil :) Sie Dekorateur einfach erstellen können für Klasse Ihres Anschlusses ist der Wille Führen Sie einige Abfragen aus, wenn Instanz erstellt (in Konstruktor)/connect-Methode aufgerufen wird.

Hoffe, es hilft

Verwandte Themen