sql >> データベース >  >> RDS >> Mysql

mysqlロックエラーまたはバグ?

    ロックテーブルを使用する場合は、クエリ内のすべてのテーブルをロックする必要があります。サブクエリを使用すると、テーブルが作成されます。そして、あなたはそれをロックしていません。そのため、あなたはエラーを受け取っています。

    参照: http://dev.mysql.com/doc /refman/5.0/en/lock-tables.html

    内部テーブルにエイリアスを与える

    テスト済みサンプル:

    lock tables products as p1 write, products as p2 write ;
    select product_id  from products as p1
    where product_id  not in ( 
    select product_id from products p2 where product_id in (1,2)
    ) 
    

    そしておそらくあなたはこれをする必要があります:

    lock tables radcheck as r1 write, radcheck as r2 write ;
    
     SELECT * FROM radcheck r1 WHERE id NOT IN (
    SELECT id FROM (
      SELECT id FROM radcheck r2 WHERE attribute = 'Password' GROUP BY UserName HAVING COUNT(*) > 1) AS c
     );
    


    1. MySQL selectでXPATHを使用する方法は?

    2. PLSQLプロシージャを使用してOracleのCSVファイルにデータをエクスポートする方法

    3. mysqlテーブルの重複する値を削除する方法

    4. 最新バージョンのSQLServerにアップグレードするための完璧なストーム