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