【发布时间】:2014-09-05 12:29:46
【问题描述】:
我想将以下两个查询合二为一:
SELECT pg_get_serial_sequence('purchase_orders', 'id');
SELECT setval('purchase_orders_id_seq', 30000);
但如果我将上面的 SELECT 放入 setval 的第一个参数中,我会得到:
SELECT setval(SELECT pg_get_serial_sequence('purchase_orders', 'id'), 30000);
ERROR: syntax error at or near "SELECT"
SQL state: 42601
Character: 15
如何将选择的结果(“purchase_orders_id_seq”)传递给 setval?
编辑:这样做的原因是;我想将它用作一个功能,用户只需输入表的名称和一个数字即可设置序列。
FUNCTION set_id_sequence(TEXT table_name, INTEGER sequence);
【问题讨论】:
-
编辑您的问题并添加失败的查询。
-
什么是
pg_serial_get_sequence?我从来没有听说过它,当被\df pg_get_serial_sequence询问时,我的 9.4 安装表示无知。你想在这里完成/修复什么,你想解决什么问题? -
我编辑了这个问题,现在可能更清楚了。
-
不,不是。为什么你首先需要这样做?您不需要到处设置序列。
-
这不是我需要的。 :) 我们的客户有一个系统管理员,他要求他可以通过让它们的 id 从 1 开始和用户创建的条目(假设为 10000)来分隔默认数据。
标签: sql postgresql sequence auto-increment