Posted at

#PostgreSQL の配列型カラムに値を追加または削除してUPDATE

More than 3 years have passed since last update.


背景

PostgreSQL 9.3.9 で配列型カラムに値を追加してUPDATEが必要そうになったときに調べたメモ。削除についても調べたのでメモ。


  • 追加にはarray_append()

  • 削除にはarray_remove()


配列型columnvalueを追加してUPDATE


SQL

UPDATE table SET column = array_append(column, value);



valueを含まない配列型columnvalueを追加してUPDATE


SQL

UPDATE table SET column = array_append(column, value) WHERE NOT (column @> ARRAY[value]);



配列型columnからvalueを削除してUPDATE


SQL

UPDATE table SET column = array_remove(column, value);



valueを含む配列型columnからvalueを削除してUPDATE


SQL

UPDATE table SET column = array_remove(column, value) WHERE column @> ARRAY[value];



参考