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"();