DBA/Postgresql

시퀀스 관련

da-dba 2024. 4. 4. 14:55
-- 전체 시퀀스 목록 --> 현재 값 ( currval = 마지막 값 last_value ) 찾기
WITH seq_list AS (
    SELECT ns.nspname AS seq_schema
         , cl.relname AS seq_name
         , coalesce(pg_sequence_last_value(cl.oid), 0) AS seq_last_value
    FROM pg_class AS cl JOIN pg_namespace ns ON cl.relnamespace = ns.oid
    WHERE cl.relkind = 'S'
      AND ns.nspname NOT IN ('hint_plan')
    ORDER BY 1,2 DESC
)
-- 시퀀스 값 설정 쿼리 만들기
SELECT concat('SELECT setval(''', seq_schema, '.', seq_name, ''', ', seq_last_value, ');') ASis ,
       concat('SELECT setval(''', seq_schema, '.', seq_name, ''', ', 1, ');') tobe
  FROM seq_list
 WHERE seq_last_value > 0
;

'DBA > Postgresql' 카테고리의 다른 글

Plan 시각화  (0) 2024.04.04
삭제 및 잘림 방지 Function  (0) 2024.04.04
그룹 및 권한 관리  (0) 2024.04.04
로그 테이블(감사)  (0) 2024.04.04
파티션테이블 관련 데이터 사이즈 조회 및 스키마 변경  (0) 2024.04.04