gpt4 book ai didi

postgresql - 如何使用 Postgresql 创建脚本来参数化序列的起始值

转载 作者:行者123 更新时间:2023-11-29 14:37:08 25 4
gpt4 key购买 nike

我是 Postgres 的新手。我使用 Pgadmin III,我需要在“改变序列”的声明中参数化一个值。我试图执行这段代码:

select coalesce(MAX(ID)+1,1) as max into myTempTable from myTable;
EXECUTE immediate 'ALTER SEQUENCE mySequence INCREMENT BY 1 START WITH ' || max || ' MINVALUE 1 NO CYCLE';

但它不起作用。怎么了?我需要将它封装在一个函数中吗?谢谢。D.

最佳答案

要手动设置值序列,您可以使用ALTER SEQUENCE seq_name RESTART WITH value

关于你的例子,你需要这样的东西:

CREATE SEQUENCE testseq;

DO $$
DECLARE
maxid INT;
BEGIN
SELECT coalesce(MAX(ID)+1,1) FROM myTable INTO maxid;
EXECUTE 'ALTER SEQUENCE testseq RESTART WITH '|| maxid;
END;
$$ LANGUAGE PLPGSQL

关于postgresql - 如何使用 Postgresql 创建脚本来参数化序列的起始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com