背景
PostgreSQL 9.3.9 で配列型カラムに値を追加してUPDATEが必要そうになったときに調べたメモ。削除についても調べたのでメモ。
- 追加には**
array_append()
** - 削除には**
array_remove()
**
配列型column
にvalue
を追加してUPDATE
SQL
UPDATE table SET column = array_append(column, value);
value
を含まない配列型column
にvalue
を追加して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];