เป็นวิธีที่ดีที่สุดในการแสดงรายการตารางทั้งหมดภายใน Post_signema information_schema ของอะไร?
เพื่อชี้แจง: ฉันกำลังทำงานกับฐานข้อมูลเปล่า (ฉันไม่ได้เพิ่มตารางของตัวเอง) แต่ฉันต้องการเห็นทุกตารางในโครงสร้าง information_schema
เป็นวิธีที่ดีที่สุดในการแสดงรายการตารางทั้งหมดภายใน Post_signema information_schema ของอะไร?
เพื่อชี้แจง: ฉันกำลังทำงานกับฐานข้อมูลเปล่า (ฉันไม่ได้เพิ่มตารางของตัวเอง) แต่ฉันต้องการเห็นทุกตารางในโครงสร้าง information_schema
คำตอบ:
คุณควรจะสามารถทำงานได้ select * from information_schema.tables
เพื่อรับรายการของทุกตารางที่จัดการโดย Postgres สำหรับฐานข้อมูลเฉพาะ
คุณยังสามารถเพิ่ม a where table_schema = 'information_schema'
เพื่อดูเฉพาะตารางใน 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'
ใน Generall pg * tables ช่วยให้คุณเห็นทุกอย่างใน db ไม่ จำกัด สิทธิ์ของคุณ (หากคุณมีสิทธิ์เข้าถึงตารางแน่นอน)
สำหรับ schema ส่วนตัว'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 รวมถึง data_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. รับเฉพาะตาราง (เกือบ \ dt)
select * from information_schema.tables
where table_schema not in ('information_schema', 'pg_catalog') and
table_type = 'BASE TABLE'
where table_schema not in ('information_schema', 'pg_catalog')
คือหา?
หากคุณต้องการคิวรี่ซับแบบรวดเร็วและสกปรก:
select * from information_schema.tables
คุณสามารถเรียกใช้ได้โดยตรงในเครื่องมือ Query โดยไม่ต้องเปิด psql
(โพสต์อื่น ๆ แนะนำการสอบถาม data_schema ที่เฉพาะเจาะจงมากขึ้น แต่ในฐานะที่เป็น newby ฉันกำลังค้นหาการค้นหาแบบหนึ่งซับช่วยให้ฉันสามารถจับตารางได้)