値を追加するための支援を求めています10
からint[]
PostgreSQL 9.5では。
ドキュメントを見ると、このフォーマットを使用して更新できるはずですが、機能しません。
int[] + int Push element onto array (add it to end of array)
私はこれを実行してみました:
update table1 set integer_array = integer_array + 10::Integer.
それはうまくいきませんでした、そして私はこのエラーを得ました:
ERROR: operator does not exist: integer[] + integer
Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Position: 67
これは、この操作の実行方法に関するドキュメントで提示されている形式と同じ形式だと思います。
使用する array_append
関数を配列の最後に要素を追加します。
UPDATE table1
SET integer_array = array_append(integer_array, 5);
5は選択する値です。これは、整数データ型です。テーブル全体を更新しないために、おそらくいくつかのWHERE
句も必要です。
以下で試してみてください。
SELECT ARRAY[1,2], array_append(ARRAY[1,2],3);
結果:
array | array_append
-------+--------------
{1,2} | {1,2,3}
私はこの方法が好きです:
UPDATE table1 SET integer_array = integer_array || '{10}';
単一のクエリで複数の値を追加することもできます。
UPDATE table1 SET integer_array = integer_array || '{10, 11, 12}';
-- Declaring the array
arrayName int8[];
-- Adding value 2206 to int array
arrayName := arrayName || 2206;
-- looping throught the array
FOREACH i IN ARRAY arrayName
LOOP
RAISE NOTICE 'array value %', i;
END LOOP;
乾杯