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}'
を参照してください。 述語)。これは通常、ベストプラクティスであり、トリガーが関係する場合はほとんどの場合推奨されます。