Ce face CONNECTION_ID()
Fiecare conexiune la server primește un număr, unic printre conexiunile deschise în acel moment. Este același număr ca în coloana Id din SHOW PROCESSLIST și în coloana PROCESSLIST_ID din performance_schema.threads.
Numărul este util pentru a opri o interogare blocată (KILL QUERY id) sau pentru a afla cine ține o blocare (IS_USED_LOCK() returnează tot un ID de conexiune).
Ce returnează
Un număr întreg pozitiv.
Exemple
Exemplul 1: ID-ul conexiunii
SELECT CONNECTION_ID();
Rezultat posibil (diferă la fiecare rulare)
+-----------------+
| CONNECTION_ID() |
+-----------------+
| 23786 |
+-----------------+
Exemplul 2: Detalii despre propria conexiune
SELECT PROCESSLIST_USER, PROCESSLIST_HOST, NAME
FROM performance_schema.threads
WHERE PROCESSLIST_ID = CONNECTION_ID();
Rezultat
+------------------+------------------+---------------------------+
| PROCESSLIST_USER | PROCESSLIST_HOST | NAME |
+------------------+------------------+---------------------------+
| root | localhost | thread/sql/one_connection |
+------------------+------------------+---------------------------+
Greșeli frecvente
- Folosești
CONNECTION_ID()ca identificator permanent. După închiderea conexiunii, numărul poate fi refolosit; pentru identificatori unici foloseșteUUID(). - Confunzi ID-ul conexiunii cu ID-ul firului din Performance Schema. Pentru acesta există
PS_CURRENT_THREAD_ID().
Comenzi înrudite
PS_CURRENT_THREAD_ID(): Returnează ID-ul din Performance Schema al firului (thread) conexiunii curente.PS_THREAD_ID(): Transformă ID-ul unei conexiuni în ID-ul firului ei din Performance Schema.IS_USED_LOCK(): Returnează ID-ul conexiunii care ține o blocare cu nume, sau NULL dacă este liberă.