0

私が使用しているクエリでは、一時テーブルを作成しています。これはクエリです:

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;

そして、このクエリの直前に、2つのテーブルをロックします。

LOCK TABLES urls WRITE, ips WRITE;

ただし、スクリプトを実行すると、mysqlから次のエラーが発生します。

Table 'u1' was not locked with LOCK TABLES

それで、誰かが私がここで間違っていることを理解するのを手伝ってくれるでしょうか?u2はまだ実際には作成されていないため、事前に宣言することはできないと思います。

4

1 に答える 1

0

私はここで解決策を見つけました:

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

基本的に、lockステートメントの後にエイリアスを使用してテーブルを参照する場合は、エイリアスを使用してテーブルをロックする必要があります。

于 2012-06-09T04:29:27.027 に答える