0
我需要一些关于交易和锁定的清晰度mysql交易和锁定MySQL
首先。需要在不同的表中进行两次或三次插入,但如果其中任何一次插入失败,则会取消整个操作。所以来了。
START TRANSACTION
但在所有事情都需要线程成为唯一的访问这些表之前。它来了
LOCK TABLES tab1 WRITE, tab2 WRITE
我应该先做什么? 按照这个顺序做是正确的吗?
START TRANSACTION;
LOCK TABLE....;
INSERT INTO ...;
if (something wrong)
{
ROLLBACK;
UNLOCK TABLES;
return;
}
INSERT INTO ...;
if (something wrong)
{
ROLLBACK;
UNLOCK TABLES;
return;
}
COMMIT;
UNLOCK TABLES;
这篇文章有一些伪JAVA 非常感谢。
你究竟想要做什么?在大多数情况下,您不必锁定表格。 InnoDB支持行级锁定。 –
在考虑插入新数据之前,请检查tab1中的用户名是否未使用,并且电子邮件是否在tab2中未使用。由于新用户注册并不常见,我认为我可以承担独家访问。 – mdev