小编M0l*_*les的帖子

使用带有 psql 变量作为参数的表达式创建序列

我已经用 Postgres 玩了一个星期左右,我正在看看是否可以使用表达式设置序列的最小值/最大值。具体目标是为服务器之间的不相交范围自动创建脚本,以避免多主设置中的密钥冲突。

例如,使用 psql:

CREATE SEQUENCE key_seq MINVALUE (:servernum * :stride)
                        MAXVALUE ((:servernum + 1) * :stride - 1);
Run Code Online (Sandbox Code Playgroud)

这给了我一个语法错误。变量是逐字内插的,不进行计算。

另一种方法是根据表达式的输出设置变量:

\set minvalue (:servernum * :stride)
Run Code Online (Sandbox Code Playgroud)

但该\set语句不计算表达式。

postgresql psql sequence dynamic-sql ddl

4
推荐指数
1
解决办法
2169
查看次数

标签 统计

ddl ×1

dynamic-sql ×1

postgresql ×1

psql ×1

sequence ×1