You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量重启PostgreSQL中所有序列至值2?

批量重置PostgreSQL所有序列至值2的方法

方法1:生成批量执行语句并手动运行

先执行下面的SQL查询,它会为所有序列生成对应的重置命令:

SELECT 'ALTER SEQUENCE ' || quote_ident(schema_name) || '.' || quote_ident(sequence_name) || ' RESTART WITH 2;' AS reset_command
FROM information_schema.sequences;

查询结果里的每一行就是一个序列的重置语句,把这些语句全部复制出来执行即可。如果只想处理特定模式(比如public)的序列,添加WHERE条件:

SELECT 'ALTER SEQUENCE ' || quote_ident(schema_name) || '.' || quote_ident(sequence_name) || ' RESTART WITH 2;' AS reset_command
FROM information_schema.sequences
WHERE schema_name = 'public';

方法2:用DO块自动批量执行

如果不想手动复制语句,可以用PostgreSQL的DO匿名块自动遍历并执行所有重置操作:

DO $$
DECLARE
    seq_record RECORD;
BEGIN
    FOR seq_record IN
        SELECT schema_name, sequence_name
        FROM information_schema.sequences
        -- 可选:取消注释并修改此处过滤特定模式的序列
        -- WHERE schema_name = 'public'
    LOOP
        EXECUTE 'ALTER SEQUENCE ' || quote_ident(seq_record.schema_name) || '.' || quote_ident(seq_record.sequence_name) || ' RESTART WITH 2;';
    END LOOP;
END $$;

执行这个块前请确保你有足够的权限修改所有目标序列,运行后所有符合条件的序列都会被重置为从2开始。

内容的提问来源于stack exchange,提问作者Italo P.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 11:39:51