我正在尝试批量插入复制的记录,以便对应用程序进行压力测试。
DO $$
DECLARE
f text[];
BEGIN
FOR counter IN 1..5 LOOP
WITH success_insert AS (
WITH appointment AS (
SELECT * FROM scheduler_appointments LIMIT 1
)
INSERT INTO scheduler_appointments (id, schedule_id, call_id, identifier, name, starts_at, ends_at, created_at, updated_at, type_id)
SELECT gen_random_uuid(), schedule_id, call_id, gen_random_uuid(), 'TEST FROM MASS PGSQL', starts_at, ends_at, now(), now(), type_id
FROM appointment
RETURNING id
)
SELECT array_agg(id) INTO f FROM success_insert;
END LOOP;
SELECT * FROM unnest(f);
END; $$
然而,我似乎不能得到一个列表的所有ID的地方创建。我反而收到以下错误:
错误:查询没有结果数据的目标
1条答案
按热度按时间6yoyoihd1#
最后一个语句
SELECT * FROM unnest(f);
没有INTO
子句。我假设目的是返回所有插入的id
s;但是,当最后一条语句运行时,f
将只具有最后一次通过循环的id
。不需要使用PLPGSQL。下面的SQL将生成scheduler_appointments
并返回id
的数组: