如何在PostgreSQL中迁移数据库之前将所有序列重置为1?

艾伦·韦恩

(PostgreSQL 9.4)

我正在将旧数据库迁移到新架构。在使用pg_restore从我的开发机器上获取了新的模式(没有数据)之后,我发现某些序列不是从1开始的。(我在开发过程中更改了多个序列以使用更高的值)。

在开始数据库迁移之前,是否可以通过编程方式将所有序列(其中一些不是主键)重置为1?

感谢您的帮助或建议。

维希尼克(M.Wiśnicki)

您可以通过改变SEQ值setval中循环,在这里你会得到所有的表蒙山列IdDATA_BASE_NAME

DO $$
DECLARE
i TEXT;
BEGIN
 FOR i IN (SELECT tb.table_name FROM information_schema.tables AS tb INNER JOIN information_schema.columns AS cols ON 
        tb.table_name = cols.table_name WHERE tb.table_catalog='DATA_BASE_NAME' 
         AND tb.table_schema='public' AND cols.column_name='Id') LOOP
         EXECUTE 'SELECT setval('||'"' || i || '_Id_seq"'||',1);';

  END LOOP;
END $$;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 MySQL 中为数据库中的所有表重置 AUTO_INCREMENT?

如何将Oracle DB中的所有序列重置为0?

如何在sails.js中迁移数据库?

无法将迁移数据导入MariaDB数据库

如何在不登录数据库的情况下从MySQL迁移数据?

在SilverStripe中重组数据库时迁移数据

如何在服务器生产中更新迁移数据库实体框架

Laravel迁移数组类型(将数组存储在数据库列中)

如何使用并发在Python中迁移数据库?

加密迁移数据库

如何在PostgreSQL中列出所有数据库及其架构?

如何将PostgreSQL数据库中的所有SMALLINT列转换为BOOLEAN?

如何将数据库中的所有表格显示为 HTML 表格?

在Entity Framework Core中为所有数据库创建和应用迁移

如何在PostgreSQL中为不同的数据库分别设置数据库参数

如何在Django 1.5中为特定应用重置数据库

在具有不同布局的两个数据库之间迁移数据

如何在PostgreSQL数据库的所有表中的每一列中修剪尾随空格

如何在所选数据库的所有过程中为公用参数更新数据类型

CoreData:从捆绑的数据库迁移数据

从数据库中选择有序列表

如何在 Oracle APEX 中重置序列或在没有序列和触发器的情况下自动填充我的 PK,每次删除我的数据时从数字 1 开始?

SQLAlchemy:访问反射数据库中的现有序列

如何在Flutter中重置Hive数据库

如何在OpenShift中更改/重置数据库密码

如何在Laravel中动态重置数据库配置?

向南迁移数据库:如何处理添加的字段

如何解决Asp.Net 3.0迁移数据库问题?

龙卷风:在运行所有测试之前重置数据库