29

配列のサイズが指定されていない場合、配列に要素を追加する最良の方法は何ですか?

これ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;
4

1 に答える 1

55

最も簡単なことは次のとおりです。

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

またはおそらく||演算子を使用します:

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

set n = n + 11どちらも、より一般的な数字と同等です。||関連する型によっては、型キャストを含めることによって、どの演算子を意味するかを明確にする必要がある場合があります。

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

バージョンではなくarray || elementバージョンが必要であることをPostgreSQLが認識できるようにします。これを私に知らせてくれたak5に感謝します。||array || array

于 2012-06-13T04:41:53.067 に答える