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

PostgresqlINステートメント

    この動作はANSI規格に従って正しいです。

    修飾されていない列名が内部スコープで解決されない場合は、外部スコープが考慮されます。つまり、効果的に、意図しない相関サブクエリを実行していることになります。

    テーブルのprofileである限り 少なくとも1つの行が含まれている場合

     FROM users
     WHERE user_id IN (
            SELECT user_id FROM profile
            )
    

    最終的にusersのすべての行に一致します (users.user_id IS NULL WHERE NULL IN (NULL)として trueと評価されません)。この考えられる問題を回避するには、2つのパーツ名を使用できます。

    DELETE FROM users
    WHERE  user_id IN (SELECT p.user_id
                       FROM   profile p) 
    

    エラーが発生します




    1. 列に最大値を設定する

    2. JavaでのFork/JoinFrameworkを使用した並列プログラミングの基本

    3. 重複する値を持つ列のインデックス作成

    4. EntityFrameworkを使用したAtomicIncrement