因此,我在一个int类型的表上有一个数组列,我正在对一百万行进行负载测试,每个记录需要四个数组元素,每个元素都有不同的值。

INSERT INTO contacts (numbers)
SELECT '{4443331111, 2223334444, 2223339999, 8887779999}'
  FROM generate_series(1,2) AS x(id);

这将创建2条记录,但我需要这些数字是唯一的。

最佳答案

INSERT INTO contacts (numbers)
SELECT distinct array[
        (random() * 99999999)::integer,
        (random() * 99999999)::integer,
        (random() * 99999999)::integer,
        (random() * 99999999)::integer
    ]
FROM generate_series(1, 1000000) AS x(id);

请注意,数字888779999超出整数的范围。所以也许你想要大整数。

10-07 23:33