2013-11-15 81 views
2

我读了很多关于锁定数据库,表和行,但我想要更低的锁,就像只锁'操作'我不知道如何调用它,可以说我有功能在PHP:MySQL阻塞/锁定操作

function update_table() 
{ 
    //querys like SELECT, UPDATE INSERT etc. 
} 

现在,我想只有一个人可以在同一时间使用此功能,以及其他需要等到第一个完成

但它是可以锁定不表/行,但只这个函数,所以其他查询与SELECT等可以执行没有问题?或者更好的是锁定桌子? (问题在于这个表非常重要,我不想锁定它,因为其他用户可以访问其他网站或其他网页,如果很多人会排队等待上面的代码,其他访问者也会有即使他们没有上述代码的站点中的兴趣)

回答

2

是的。您可以使用GET_LOCKRELEASE_LOCK mysql函数

+0

但是很明显,GET_LOCK只会阻止具有相同名称的其他GET_LOCK查询吗? –

+1

当然。但是你想锁定你的函数中发生的任何事情,而不是阻止任何特定的查询,对:) –