在MySQL中,我有一棵由嵌套集合表示的树。操作嵌套集合需要修改表格中的多行。例如,添加一个节点到树将需要重新排序左,右值...在以下情况下需要使用表锁来保持数据完整性
SELECT @myLeft := lft FROM folders WHERE ID = ?;
UPDATE folders SET rgt = rgt + 2 WHERE rgt > @myLeft;
UPDATE folders SET lft = lft + 2 WHERE lft > @myLeft;
目前,我在一个事务包裹这一点。然而,我想知道......交易是否足以确保数据的完整性?
我很担心,因为有两个单独的UPDATE语句,在高容量的环境中,这可能会导致问题......我是否应该锁定表,以确保这两个UPDATE语句之间没有任何变化?
在此先感谢您的帮助
在将更改提交到实际表之前,事务已经锁定了表。 – 2011-03-27 06:58:50