当未提供数组大小时,将元素添加到数组的最佳方法是什么?
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;
答案 0 :(得分:42)
最简单的事情是:
update table
set array = array_append(array, 'element')
where ...
或者可能使用||
operator:
update table
set array = array || 'element'
where ...
这两个都等同于数字更常见的set n = n + 11
。