我如何使用变量创建或更新postgresql序列

时间:2013-10-21 08:14:05

标签: postgresql sequence

我想用变量

创建或更新postgresql序列

如果我在创建或更新序列时输入准确值,它可以正常工作

like 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;

它出错

我正在寻找在创建序列时放置变量的方法

谁知道的方式?请帮忙。

我只想创建序列范围

1 个答案:

答案 0 :(得分:5)

对于那种if语句,您可能需要使用动态SQL。

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

不要忘记根据需要使用quote_ident()和quote_literal()。