2013-03-01 51 views
1

MySQL(InnoDB)表可以锁定递归MySQL:表可以递归锁定吗?

在LOCK TABLES文档中找不到任何提及的嵌套或递归。

默认行为似乎是(根据我所观察到的)第二个锁隐式地解锁第一个锁。

有没有什么办法让它的函数递归?

回答

1

如果通过递归地,您的意思是反复调用LOCK TABLES,创建一系列嵌套锁,那么答案是“否”。在表上调用LOCK TABLES隐式释放该线程在该表上保存的任何当前锁。

the MySQL LOCK TABLES syntax documentation

UNLOCK TABLES明确释放当前会话持有的表锁。 LOCK TABLES在获取新锁之前隐式释放当前会话持有的任何表锁。

+0

雅,这是我一直在观察的行为。 是否有任何方法**使它**函数递归? – 2013-03-01 04:15:45

+0

@ AJ.DE你为什么需要?听起来更像是你想要交易。 – Petah 2013-03-01 04:17:40

+0

在MySQL中没有递归锁定的方法。 – hrunting 2013-03-01 04:22:46