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

Postgresは、配列の各要素(存在しない場合)を配列列に追加または設定します

    arr_str タイプはtext[]です (適切な形式を使用していなかったため、間違っている可能性があります。その場合は、値をtext[]にキャストする必要があります。 。

    arr_strにすでに存在する重複を削除する場合は、次のステートメントを使用します 列:

    update tabl1
    set    arr_str = (select array_agg(distinct e) from unnest(arr_str || '{b,c,d}') e)
    where  not arr_str @> '{b,c,d}'
    

    または、既存の重複を保持する場合は、次のものを使用します。

    update tabl1
    set    arr_str = arr_str || array(select unnest('{b,c,d}'::text[]) except select unnest(arr_str))
    where  not arr_str @> '{b,c,d}'
    

    これらのステートメントはどちらも行に影響を与えないため、影響を受けることはありません(where not arr_str @> '{b,c,d}'を参照してください。 述語)。これは通常、ベストプラクティスであり、トリガーが関係する場合はほとんどの場合推奨されます。

    http://rextester.com/GKS7382



    1. ubuntuサーバー16.04のmysqlのデフォルトパスワード

    2. Oracleで主キーを持つ重複行を見つける11の方法

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

    4. MYSQLでのPATINDEX()の置換