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

PostgreSQL:左外部自己結合を無視して更新

    接続しているWHEREがありません 条項:

    UPDATE catalog_category c
    SET    leaf_category = true
    FROM   catalog_category c1 
    LEFT   JOIN catalog_category c2 ON c1.id = c2.parent_id
    WHERE  c.id = c1.id
    AND    c2.parent_id IS NULL;
    

    NOT EXISTSのこのフォーム おそらくより速く、同じことをします:

    UPDATE catalog_category c
    SET    leaf_category = true
    WHERE  NOT EXISTS (
        SELECT FROM catalog_category c1
        WHERE  c1.parent_id = c.id
        );
    

    UPDATEのマニュアル 。

    関連:




    1. テーブルは「読み取り専用」です

    2. mysqlの変更innodb_large_prefix

    3. 配列との関係をフラット化して、配列エントリごとに1つの行を出力します

    4. データベースの結果を配列に追加する