Масиви й серіїлише PostgreSQL

ARRAY_APPEND

Повертає масив із доданим у кінець елементом.

Синтаксис

ARRAY_APPEND(<масив>, <елемент>)
ARRAY_PREPEND(<елемент>, <масив>)
<масив> || <масив>

Додає один елемент у кінець масиву, ARRAY_PREPEND — на початок, а оператор || склеює два масиви. Сам масив не змінюється: функції повертають новий. Прибрати елемент допоможе ARRAY_REMOVE.

Додати в кінець і на початок
SELECT ARRAY_APPEND(ARRAY['sql', 'postgres'], 'database') AS appended,
ARRAY_PREPEND('intro', ARRAY['sql', 'postgres']) AS prepended;
appendedprepended
["sql","postgres","database"]["intro","sql","postgres"]
Склеїти два масиви
SELECT ARRAY['sql', 'postgres'] || ARRAY['database', 'index'] AS combined;
combined
["sql","postgres","database","index"]
Почати з порожнього
SELECT ARRAY_APPEND(ARRAY[]::text[], 'first') AS from_empty,
ARRAY_APPEND(NULL, 'first') AS from_null;
from_emptyfrom_null
["first"]["first"]

Зверни увагу

Порядок аргументів різний: ARRAY_APPEND(<масив>, <елемент>), але ARRAY_PREPEND(<елемент>, <масив>). Переплутаєш — ARRAY_PREPEND(ARRAY['a'], 'b') дасть незрозумілу помилку could not find array type for data type text[].

До NULL додавати можна: ARRAY_APPEND(NULL, 'sql') дає масив з одного елемента, а не NULL.

Функції лише повертають новий масив. Щоб змінити дані в таблиці, потрібен UPDATE … SET tags = ARRAY_APPEND(tags, 'sql').

Схожі функції