最近項目中數據庫服務遷移到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"();