我有以下循环(以示例为例):
DO $$
DECLARE
l record;
BEGIN
FOR l IN SELECT id, country_id FROM logo LOOP
WITH cs AS (
INSERT INTO logo_settings (targeted) VALUES (true)
RETURNING id
)
INSERT INTO logo_settings_targeted (logo_settings_id, country_id)
VALUES
( (SELECT id FROM cs),
logo.country_id,
);
END LOOP;
END;
END $$;
循环的主体工作正常。但是,如果我将其包装成一个循环(我想为徽标表中的所有记录创建记录),则会显示错误消息:
ERROR: syntax error at or near "END"
Position: 712
END;
^
表示END $$;
之前的最后一个EnND,对我来说意义不大。我不知道要解决什么才能使其运行。有任何提示吗?
DO $$
DECLARE
l record;
BEGIN
FOR l IN SELECT id, country_id FROM logo LOOP
WITH cs AS (
INSERT INTO logo_settings (targeted) VALUES (true)
RETURNING id
)
INSERT INTO logo_settings_targeted (logo_settings_id, country_id)
VALUES
( (SELECT id FROM cs),
logo.country_id,
);
END LOOP;
END $$;