PostgreSQL의 information_schema 내의 모든 테이블을 나열하는 가장 좋은 방법은 무엇입니까?
명확히하기 위해 : 빈 DB로 작업하고 있지만 (내 테이블을 추가하지 않았습니다) information_schema 구조의 모든 테이블을보고 싶습니다.
답변
select * from information_schema.tables
특정 데이터베이스에 대해 Postgres가 관리하는 모든 테이블 목록을 가져 오기 위해 실행할 수 있어야 합니다.
where table_schema = 'information_schema'
정보 스키마의 테이블 만 보려면를 추가 할 수도 있습니다 .
답변
테이블을 나열하려면 다음을 사용하십시오.
SELECT table_name FROM information_schema.tables WHERE table_schema='public'
생성 한 테이블 만 나열됩니다.
답변
\dt information_schema.
psql 내에서 괜찮을 것입니다.
답변
\ “Z”명령은 또한 목록 테이블 때 대화 형 psql의 세션 내부에 좋은 방법입니다.
예.
# psql -d mcdb -U admin -p 5555
mcdb=# /z
Access privileges for database "mcdb"
Schema | Name | Type | Access privileges
--------+--------------------------------+----------+---------------------------------------
public | activities | table |
public | activities_id_seq | sequence |
public | activities_users_mapping | table |
[..]
public | v_schedules_2 | view | {admin=arwdxt/admin,viewuser=r/admin}
public | v_systems | view |
public | vapp_backups | table |
public | vm_client | table |
public | vm_datastore | table |
public | vmentity_hle_map | table |
(148 rows)
답변
당신은 또한 사용할 수 있습니다
select * from pg_tables where schemaname = 'information_schema'
일반적으로 pg * 테이블을 사용하면 권한에 제한되지 않고 (물론 테이블에 액세스 할 수있는 경우) db의 모든 내용을 볼 수 있습니다.
답변
'xxx'
postgresql의 개인 스키마 :
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'xxx' AND table_type = 'BASE TABLE'
이 없으면 table_type = 'BASE TABLE'
테이블과 뷰를 나열 합니다.
답변
1. information_schema.tables에서 모든 테이블과 뷰를 가져옵니다. information_schema 및 pg_catalog를 포함합니다.
select * from information_schema.tables
2.get 테이블 및 뷰는 특정 스키마에 속합니다.
select * from information_schema.tables
where table_schema not in ('information_schema', 'pg_catalog')
3.get 테이블 만 (거의 \ dt)
select * from information_schema.tables
where table_schema not in ('information_schema', 'pg_catalog') and
table_type = 'BASE TABLE'