2016-06-28 23 views
5

È possibile impostare o inizializzare una query in MySQL per ogni nuova connessione?Come chiamare automaticamente una query per ogni nuova connessione in MySQL?

Ogni volta che viene creata una connessione, chiamerà automaticamente una procedura o una query di selezione?

Qualsiasi script o opzione di configurazione per questo?

+0

esemplificare il vostro caso d'uso – 1000111

+0

voglio selezionare alcuni dati e salvare i valori delle variabili per ogni sessione .. valore è diverso per ogni sessione come le modifiche dei dati. –

+0

@drew: sì. Ho bisogno di questo. Nessuna latenza la query dovrebbe chiamare su ogni nuova connessione. –

risposta

10

Si consiglia di verificare init_connect variabile:

Una stringa da eseguire dal server per ogni client che si connette. La stringa è composta da una o più istruzioni SQL, separate da caratteri di punto e virgola . Ad esempio, ogni sessione client inizia con predefinita con la modalità autocommit abilitata.

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

+0

Avvertenza: 'init_connect' non viene eseguito per' root'. Questo è un motivo valido per avere utenti separati per il codice dell'applicazione. –

+0

Non c'è latenza in questa soluzione (a parte quanto tempo ci vuole per eseguire le query). –

+0

Il punto è che la query viene eseguita immediatamente dopo la connessione; non c'è ritardo (latenza) prima di iniziare la query, come potrebbe accadere con alcuni meccanismi di polling. –

3

Se si hanno non solo strumento di mysql-client, ma ulteriore qualsiasi livello di applicazione, non v'è più jedi-style :) È possibile creare semplici decoratore per la classe del connettore che sarà eseguire alcune query quando viene creato un metodo di creazione (in costruttore)/connessione.

Speranza che aiuta