首页 > 解决方案 > 项目中所有自动字段的 django 重置序列

问题描述

在我的 django 项目中,我有很多模型。问题是,我想确保所有这些模型的主键字段都从那里开始10000并从那里递增。我在后端使用 postgresql。我知道我可以为我的模型的每个序列运行自定义 sql 迁移。但是当有很多模型时,这个过程就变得不那么适用了。有什么替代方法吗?谢谢!

标签: pythondjangopostgresqldjango-models

解决方案


以下查询会将公共模式中每个序列的下一个值设置为 10000。

DO $$
  DECLARE
    sq name;
  BEGIN
    FOR sq IN SELECT
      sequencename
    FROM
      pg_sequences
    WHERE
      schemaname = 'public'
    LOOP
      PERFORM setval(sq::regclass, 9999);
    END LOOP;
  END
$$;

推荐阅读