2012-06-09 164 views
0

在我正在使用的查詢中,我創建了一個臨時表。這是查詢:mysql被鎖定臨時表

SELECT u1.url,u1.id,u1.domain FROM urls u1 JOIN 
(create new table here) u2 ON u1.id = u2.url_id 
GROUP BY u1.domain; 

,右此查詢之前,我鎖定兩個表:

LOCK TABLES urls WRITE, ips WRITE; 

然而,MySQL的給我這個錯誤,當我運行我的腳本:

Table 'u1' was not locked with LOCK TABLES 

所以有人能幫我理解我在這裏做錯了什麼嗎?我認爲我不能提前宣佈u2,因爲它還沒有真正做出來。

回答

0

我找到了解決辦法here

LOCK TABLES urls WRITE, urls as u1 WRITE, ips WRITE; 

從本質上講,如果你打算lock語句後,引用表的別名,你需要有一個別名鎖定。