我试图制作一个基本的 for 循环示例。找不到我做错了什么。你能帮忙吗:
BEGIN
FOR i_ IN 1..100 LOOP
INSERT INTO "MYSHM".aaa values (i_,i_ + 1 ,i_ + 2,i_ + 3);
END LOOP;
END
[错误] 2.0-2:语法错误,意外字符
过程代码只允许在DO
语句或函数体中使用。
使用默认的过程语言PL/pgSQL(但还有许多其他选项):
DO
$do$
BEGIN
FOR i IN 1..100 LOOP
INSERT INTO "MYSHM".aaa -- column definition list ?!
VALUES (i, i + 1, i + 2, i + 3);
END LOOP;
END
$do$;
或者,更好的是,使用 generate_series()
将您的问题重新转换为基于集合的操作:
INSERT INTO "MYSHM".aaa -- column definition list ?!
SELECT i, i + 1, i + 2, i + 3
FROM generate_series(1,100) i;