したがって、int型のテーブルに配列列があります。100 万行の負荷テストを行っており、レコードごとに 4 つの配列要素がすべて異なる値で必要です。
INSERT INTO contacts (numbers)
SELECT '{4443331111, 2223334444, 2223339999, 8887779999}'
FROM generate_series(1,2) AS x(id);
これにより 2 つのレコードが作成されますが、番号が一意である必要があります。
したがって、int型のテーブルに配列列があります。100 万行の負荷テストを行っており、レコードごとに 4 つの配列要素がすべて異なる値で必要です。
INSERT INTO contacts (numbers)
SELECT '{4443331111, 2223334444, 2223339999, 8887779999}'
FROM generate_series(1,2) AS x(id);
これにより 2 つのレコードが作成されますが、番号が一意である必要があります。
必要なのは、random()
最大値を得るために適切な数値を掛けた関数です。ただし、その関数への 4 つの呼び出しから配列を作成する必要があります。
配列値を構築するためのわずかに異なる構文があり、ここでの作業が簡単になります。これは次のようになります。
SELECT ARRAY[4443331111, 2223334444, 2223339999, 8887779999]
文字列として構築する必要がないため、配列の一部に関数呼び出しを使用できます。つまり、これは機能するはずです。
SELECT ARRAY[random() * 1000000, random() * 1000000, random() * 1000000, random() * 1000000]
FROM generate_series(1,2) AS x(id);
浮動小数点数を返し、整数が必要なためrandom()
、どこかにキャストが必要です。最も簡単に書くのは、次のように配列全体を::int[]
最後に a でキャストすることです。
SELECT ARRAY[random() * 1000000, random() * 1000000, random() * 1000000, random() * 1000000]::int[]
FROM generate_series(1,2) AS x(id);
Postgres ドキュメント: random()
; 配列コンストラクター (キャスト ショートカットに関する注記を含む)