mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE myProc() -> BEGIN -> DECLARE lock_result INT; -> IF get_lock('sp_critical_section_lock',60) THEN -> /* This block can only be run by one user at a time*/ -> SELECT 'got lock'; -> /* Critical code here */ -> SET lock_result=release_lock('sp_critical_section_lock'); -> ELSE -> SELECT 'failed to acquire lock'; -> /* Error handling here */ -> END IF; -> END$$ Query OK, 0 rows affected (0.00 sec) mysql> mysql> delimiter ; mysql> call myProc(); +----------+ | got lock | +----------+ | got lock | +----------+ 1 row in set (0.02 sec) Query OK, 0 rows affected (0.02 sec) mysql> mysql> drop procedure myProc; Query OK, 0 rows affected (0.00 sec) mysql> mysql>