การใช้ psql ฉันจะแสดงรายการส่วนขยายที่ติดตั้งในฐานข้อมูลได้อย่างไร


243

ฉันจะแสดงรายการส่วนขยายทั้งหมดที่ติดตั้งไว้แล้วในฐานข้อมูลหรือสคีมาจาก psql ได้อย่างไร

ดูสิ่งนี้ด้วย

คำตอบ:


363

ใน psql ที่น่าจะเป็น

\dx

ดูคู่มือสำหรับรายละเอียด: http://www.postgresql.org/docs/current/static/app-psql.html

ทำใน SQL ธรรมดามันจะเลือกpg_extension:

SELECT * 
FROM pg_extension

http://www.postgresql.org/docs/current/static/catalog-pg-extension.html


@SoichiHayashi: คุณอาจใช้รุ่น Postgres รุ่นเก่า
a_horse_with_no_name

ฉันใช้เซิร์ฟเวอร์ PostgreSQL 9.3.5 แต่ฉันใช้ไคลเอ็นต์ psql 8.4.20 ที่มาพร้อมกับ CentOS 6.5 บางทีฉันอาจต้องติดตั้ง psql รุ่นล่าสุด?
Soichi Hayashi

@SoichiHayashi \dx เป็นคำสั่งpsqlซึ่งถูกนำมาใช้กับ 9.0 เมื่อcreate extensionคุณลักษณะถูกปล่อยออกมา ใช่คุณต้องอัปเกรดของคุณpsqlด้วย (คุณควรใช้psqlรุ่นที่ตรงกับรุ่นฐานข้อมูลของคุณเสมอ)
a_horse_with_no_name

1
แดกดันอย่างไร stackoverflow.com/questions/9463318/ ......หนึ่งในความคิดเห็นคือคำถามดังกล่าว (และการไม่สามารถทำสิ่งที่ยากเช่น \?) จะรบกวน a_horse_with_no_name: D เพื่อความเป็นธรรมคำตอบนี้มีข้อมูลที่เป็นประโยชน์อื่น ๆ
John Powell

11
คุณอาจจะพูดถึงการสืบค้น SQL แบบเต็มสำหรับรายการ:select * from pg_extension
icl7126

82

นอกจากนี้หากคุณต้องการทราบว่าส่วนขยายใดที่พร้อมใช้งานบนเซิร์ฟเวอร์ของคุณ: SELECT * FROM pg_available_extensions


5

แบบสอบถาม SQL นี้ให้ผลลัพธ์คล้ายกับ\dx:

SELECT e.extname AS "Name", e.extversion AS "Version", n.nspname AS "Schema", c.description AS "Description" 
FROM pg_catalog.pg_extension e 
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace 
LEFT JOIN pg_catalog.pg_description c ON c.objoid = e.oid AND c.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass 
ORDER BY 1;

ขอบคุณhttps://blog.dbi-services.com/listing-the-extensions-available-in-postgresql/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.