我正在迁移之前使用 MySQL 的应用程序。现在必须使用 Oracle 来开发该应用程序。 我没有找到任何替代方案
$lock = $conn->execute('SELECT IS_FREE_LOCK("' . $lock_key . '")');
请帮忙。
最佳答案
如果您确实想使用用户定义的锁,则需要使用 dbms_lock
package 。不过,想要在 Oracle 应用程序中使用用户定义的锁是非常、非常不寻常的。 Oracle 自动提供的锁定不足的情况是很不寻常的。
如果您确实沿着用户定义锁的路径前进,dbms_lock.request
将获取锁。确定锁是否“空闲”的唯一方法是以适当的模式请求它并检查返回值。如果您想避免阻塞时间过长,可以指定相对较短的超时时间。
关于Oracle 中的 MySQL 锁替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21495218/