Подтвердить что ты не робот

Postgres Array Append & Array Length для 'Array Push'

Каков наилучший способ добавить элемент в массив, если размер массива не указан?

С array_append это то, о чем я могу думать:

UPDATE table SET array = array_append((SELECT array FROM table WHERE ...), 'element') WHERE ...;

С array_length это то, о чем я могу думать:

UPDATE table SET array[array_length((SELECT array FROM table WHERE ...), 1)+1] = element;
4b9b3361

Ответ 1

Самое простое:

update table
set array = array_append(array, 'element')
where ...

или, возможно, используйте оператор ||:

update table
set array = array || 'element'
where ...

Оба из них эквивалентны более обычным set n = n + 11 для чисел.