4

変数を使用して postgresql シーケンスを作成または更新しようとしています

シーケンスを作成または更新するときに正確な値を入力すると、機能します

create sequence test minvalue 5 maxvalue 10 start 5; のように

しかし、シーケンスの最小値と最大値を設定する関数を作成すると

CREATE OR REPLACE FUNCTION test(bigint, bigint)
RETURNS void AS
$BODY$
BEGIN
    create sequence test minvalue $1 maxvalue $2 start $1;
END;
$BODY$
    LANGUAGE plpgsql VOLATILE
    COST 100;

エラーを起こします

シーケンスを作成するときに変数を配置する方法を探しています

誰が道を知っていますか?助けてください。

シーケンス範囲を作成したいだけです

4

1 に答える 1

5

その種の if ステートメントには、動的 SQL を使用する必要がある場合があります。

http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

必要に応じて quote_ident() と quote_literal() を忘れないでください。

于 2013-10-21T08:27:18.180 に答える