PosgreSQL-循环语法

问题描述 投票:0回答:1

我有以下循环(以示例为例):

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,对我来说意义不大。我不知道要解决什么才能使其运行。有任何提示吗?

sql postgresql loops for-loop psql
1个回答
1
投票
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 $$;
© www.soinside.com 2019 - 2024. All rights reserved.