GET_LOCKでロックをかける
MySQLではGET_LOCKでロックをかけれます。
#ロックが使用可能かを確認します。ロックが使用可能 ( まだ使用されていない ) 場合は 1 を返します。 mysql> SELECT IS_FREE_LOCK("lock1"); -> 1 #ロックをかけます。成功時は1が返ります。 mysql> SELECT GET_LOCK("lock1",10); -> 1 #ロックを解除します。成功時は1が返ります。 mysql> SELECT RELEASE_LOCK("lock1"); -> 1
注意点としては、一度に使用できるロックは1つということです。
SELECT GET_LOCK("lock1",10);
SELECT GET_LOCK("lock2",10);
と実行すると、lock1はlock2が実行された時点で自動的に解除されます。
http://dev.mysql.com/doc/refman/5.1-olh/ja/miscellaneous-functions.html#function_get-lock
http://dev.mysql.com/doc/refman/5.1/ja/miscellaneous-functions.html