postgresql - 将数据插入 Postgresql 的存储过程

标签 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 »begin«

也许我在我的函数中遗漏了什么?

最佳答案

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

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 参数。

关于postgresql - 将数据插入 Postgresql 的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38829992/

相关文章:

sql - 直接通过 block 范围索引 (BRIN) 标识符查询 Postgres 表

sql - 从 x 年前开始计算运行总和

ruby-on-rails - Rails 4 Postgresql 数组数据类型 : updating values

sql - 计算/导出连续日期范围内的第一个开始日期

c# - 如何从需要日期时间的 MVC 调用存储过程

MySQL 存储过程不工作

c# - 如何使用 C# 中的 MySQL 存储过程将表作为存储过程的输入发送?我有 T-SQL 工作

Django 到 PostgreSQL : Error loading psycopg2

mysql - 程序属于什么?

mysql - 常规调用存储过程不会返回记录