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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM