2012-05-07 88 views
1

我找到了一个我试图在项目中使用的嵌套集合模型的例子。我无法理解正在发生的事情的一小部分,这反过来使我无法调整它以满足我的需求。这个例子看起来像这样:SQL运算符?我在看什么?

LOCK TABLE nested_category WRITE; 

SELECT @myRight := rgt FROM nested_category 
WHERE name = 'TELEVISIONS'; 

UPDATE nested_category SET rgt = rgt + 2 WHERE rgt > @myRight; 
UPDATE nested_category SET lft = lft + 2 WHERE lft > @myRight; 

INSERT INTO nested_category(name, lft, rgt) 
VALUES ('GAME CONSOLES', @myRight + 1, @myRight + 2); 

UNLOCK TABLES; 

我不明白在线上发生了什么SELECT @myRight:=rgt FROM nested_category。 更具体地说,我不是在抓“@myRight:= rgt”。那里发生了什么?

+1

您正在使用哪种RDBMS? – zimdanen

回答

1

它看起来像代码是从nested_category的行中分配rgt的值,其中name = 'TELEVISIONS'到变量@myRight

+0

好吧,我现在明白了。万分感谢! –

+0

LOCK表是否需要这一切发生? –

+0

是的,当表经历更新事务时需要它。 – Rahul

0
SELECT @myRight := rgt FROM nested_category 

变量myRight将在表nested_category