我试图制作一个基本的循环样本。找不到我做错了什么。你能帮忙吗?
BEGIN
FOR i_ IN 1..100 LOOP
INSERT INTO "MYSHM".aaa values (i_,i_ + 1 ,i_ + 2,i_ + 3);
END LOOP;
END
[ERROR] 2.0-2:语法错误,意外字符
答案 0 :(得分:2)
只允许在DO
声明或function body内使用程序代码
使用默认过程语言PL/pgSQL(但有many other options):
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;