web-dev-qa-db-ja.com

postgreSQL-10でストアドプロシージャを作成するときのエラー

最初のストアドプロシージャを機能させることができなかったため、この例をマニュアルからコピーしました。

CREATE PROCEDURE insert_data(a integer, b integer)
LANGUAGE SQL
AS $$
INSERT INTO tbl VALUES (a);
INSERT INTO tbl VALUES (b);
$$;

CALL insert_data(1, 2);

次のエラーメッセージが表示されます。

ERROR:  syntax error at or near "PROCEDURE"
LINE 1: CREATE PROCEDURE insert_data(a integer, b integer)
               ^
SQL state: 42601
Character: 8

何が悪いのですか?

Localhostでデータベースを実行していて、管理者ユーザーとして実行しています。自分でインストールしました。インストールプロセスはエラーなしで完了し、テーブル、関数、トリガーなどを作成できます。

2
Granny Aching

コメントで述べたように、PostgreSQL-10にはストアドプロシージャがありません。以前のバージョンについても同様です。

代替策:

  • バージョン11以降にアップグレードする
  • 関数 を使用します

ありがとう、@ Erwin Brandstetterおよび@a_horse_with_no_name

0
Granny Aching