Ce face RELEASE_ALL_LOCKS()
RELEASE_ALL_LOCKS() eliberează dintr-o dată toate blocările luate cu GET_LOCK() de conexiunea curentă. Rezultatul este numărul de blocări eliberate; o blocare luată de două ori se numără de două ori.
Este utilă la finalul unei sarcini sau înainte ca o conexiune să fie returnată într-un pool, ca să nu rămână blocări uitate.
Ce returnează
Numărul de blocări eliberate (0 dacă nu era niciuna).
Exemple
Exemplul 1: Mai multe blocări, eliberate deodată
SELECT GET_LOCK('import_clienti', 0), GET_LOCK('import_produse', 0), GET_LOCK('import_produse', 0);
SELECT RELEASE_ALL_LOCKS() AS eliberate;
SELECT RELEASE_ALL_LOCKS() AS a_doua_oara;
Rezultat
+-------------------------------+-------------------------------+-------------------------------+
| GET_LOCK('import_clienti', 0) | GET_LOCK('import_produse', 0) | GET_LOCK('import_produse', 0) |
+-------------------------------+-------------------------------+-------------------------------+
| 1 | 1 | 1 |
+-------------------------------+-------------------------------+-------------------------------+
+-----------+
| eliberate |
+-----------+
| 3 |
+-----------+
+-------------+
| a_doua_oara |
+-------------+
| 0 |
+-------------+
Greșeli frecvente
- Crezi că
RELEASE_ALL_LOCKS()eliberează și blocările altor conexiuni. Eliberează doar blocările conexiunii curente.
Comenzi înrudite
RELEASE_LOCK(): Eliberează o blocare luată cu GET_LOCK().GET_LOCK(): Ia o blocare cu nume, pe tot serverul; alte conexiuni așteaptă până se eliberează.