2013-05-02 28 views
12

Soru: PostgreSQL ise: Nasıl mevcut tüm veri türlerini listelemek için?

nasıl mevcut tüm datataypes listeleyebilirsiniz, (değil konsolu SQL kullanarak)? İdeal böyle

: eğer varsa http://www.java2s.com/Code/PostgreSQL/Postgre-SQL/Displaysalldatatypesintheconnecteddatabasewithcomments.htm

Ayrıca, kullanıcı tanımlı türleri listelenmelidir. Sadece bir tabloda yeni bir sütun için veri türünü tanımlayan pgadmin3 listeye gibi
. Aslında ilkel (dahili) türleri, uzantılar tarafından eklenen türleri, kullanıcı tanımlı bileşik tipleri, etki ve tablo rowtypes içerir PostgreSQL

cevap

18

"veri türleri". Bunlardan hangisinin ilginizi çekeceği belli değil. Belirli bir veritabanında mevcut her türlü böylece sonuçları filtrelemek gerekebileceğini veritabanı en pg_catalog.pg_type listelenmiştir. the documentation for the pg_type system catalog table'a bakın. Mevcut değil yüklenmiş uzantılar için

Türleri listelenmiş değil bulunmaktadır. Mevcut veritabanında yüklü olmayan uzantıların sağladığı türleri listelemenin bir yolu yoktur. tipleri psql 'ın \dT * komutunu kullanın ait

daha güzel bir listesini almak için. Sen -E bayrağıyla psql çalıştırarak bu yürütür yatan SQL görebilirsiniz:

$ psql -E regress 
regress=> \dT * 
********* QUERY ********** 
SELECT n.nspname as "Schema", 
    pg_catalog.format_type(t.oid, NULL) AS "Name", 
    pg_catalog.obj_description(t.oid, 'pg_type') as "Description" 
FROM pg_catalog.pg_type t 
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace 
WHERE (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid)) 
    AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid) 
    AND pg_catalog.pg_type_is_visible(t.oid) 
ORDER BY 1, 2; 
************************** 
12
select * from pg_type; 

pg_type

+0

Eğer belirli db her türlü ya Postgres avaiable tüm veri türlerini listelemek istiyorum? – Borys

İlgili konular