2016-07-05 1 views
3

나는 Postgres에서 시퀀스 이름의 목록을 얻고 싶다.Postgres에서 시퀀스 이름 목록을 얻는 방법?

select sequence_name 
from user_sequences 

을하지만 포스트 그레스에 나는 항상 오류가 발생하는 문 사용할 때 :

오라클, 나는 사용할 수 있습니다 하지 발견 user_sequences합니다.

어떻게하면 Postgres에서이 작업을 수행 할 수 있습니까?

답변

2

SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';
또는 \ds 다음 psql -U username -E로 psql 프로그램을 실행하려고. 이렇게하면 결과를 생성하는 데 사용 된 쿼리도 표시됩니다.

+0

나는 시퀀스 이름을 선택하는 SQL 문을 통해, 오라클처럼이 싶어. – liu246437

+0

@ liu246437 답변을 편집했습니다. 이 쿼리는 검색 대상에 적합해야합니다. – DunnoHowToCode

+0

나는 당신의 methord에 의해 그것을 시도, 감사, – liu246437

4

당신은 사용할 수 있습니다

select sequence_schema, sequence_name 
from information_schema.sequences; 

현재 사용자가 아닌 그에게을 소유 한 사람 에 시퀀스 목록 접근가 반환. 포스트 그레스에서

select n.nspname as sequence_schema, 
     c.relname as sequence_name, 
     u.usename as owner 
from pg_class c 
    join pg_namespace n on n.oid = c.relnamespace 
    join pg_user u on u.usesysid = c.relowner 
where c.relkind = 'S' 
    and u.usename = current_user; 

여러 스키마에있는 개체 (예 : 시퀀스)를 소유 할 수있는 사용자,하지 :

당신이 순서 을 나열 할 경우

pg_class, pg_namespacepg_user에 가입해야 현재 사용자가 소유 그냥 "자신"이기 때문에 시퀀스가 ​​생성 된 스키마를 확인해야합니다. 설명서의

자세한 내용은 :

관련 문제