将数据插入Postgresql的存储过程

时间:2016-08-08 13:05:05

标签: postgresql stored-procedures

我在Postgresql数据库中定义了以下存储过程或函数:

    CREATE OR REPLACE FUNCTION insert_val(int)
    $body$
    BEGIN
      FOR i IN 1..10 LOOP
        insert into test (val)
        values($23);
      END LOOP;
   END;
   $body$ Language 'plpgsql' VOLATILE;

我只是想在循环中插入这些数据,但我总是得到这个错误:

  

Syntaxfehler bei»开始«

也许我错过了我的功能?

2 个答案:

答案 0 :(得分:1)

我不明白错误信息,因为它不是英文版,但我可以在你的代码中看到一些问题

CREATE OR REPLACE FUNCTION insert_val(IN val int) RETURNS VOID  AS 
$body$
    BEGIN
      FOR i IN 1..10 LOOP
        insert into test (val)
        values($23);
      END LOOP;
   END;
   $body$ Language 'plpgsql' VOLATILE;

你错过了返回类型,你错过了AS并且你忘了给in参数命名。

答案 1 :(得分:1)

你忘记了

RETURNS void AS

在第一行和第二行之间。

但这只会照顾语法。 $23显然是错误的,因为没有23个函数参数。您的意思是$1吗?