(PostgreSQL 9.4)
我正在将旧数据库迁移到新架构。在使用pg_restore从我的开发机器上获取了新的模式(没有数据)之后,我发现某些序列不是从1开始的。(我在开发过程中更改了多个序列以使用更高的值)。
在开始数据库迁移之前,是否可以通过编程方式将所有序列(其中一些不是主键)重置为1?
感谢您的帮助或建议。
您可以通过改变SEQ值setval
中循环,在这里你会得到所有的表蒙山列Id
在DATA_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] 删除。
我来说两句