PostgreSQL-迁移同步序列

最近项目中数据库服务迁移到U_cloud云服上,有些项目中数据量比较少,在迁移过程;表数据迁移过去;但是序列需要重置下;接下来讲到如何快速获取同步序列的SQL

一、构建同步序列函数

CREATE OR REPLACE FUNCTION "pg_sync_seq"()
  RETURNS TABLE("sync_seq" text, "last_value" int8) AS $BODY$
DECLARE
  sequence_name varchar(255);
BEGIN
  FOR sequence_name in (select seqrelid :: regclass from pg_sequence)
  LOOP
  RETURN QUERY EXECUTE 'select '|| quote_literal(sequence_name) ||', last_value   from ' || quote_ident(sequence_name);
  END LOOP;
  RETURN;
END
$BODY$
  LANGUAGE plpgsql

二、获取SQL

执行SQL可以获取重置序列的脚本

 select 'select setval('||quote_literal(sync_seq)||', '||last_value||');' from "pg_sync_seq"();
posted @ 2021-01-26 15:13  lottu  阅读(1027)  评论(0编辑  收藏  举报