Die Informationsschemaansichten und pg_typeof () geben unvollständige Typinformationen zurück. Gibt von diesen Antworten psql
die genauesten Typinformationen. (Das OP benötigt möglicherweise keine so genauen Informationen, sollte jedoch die Einschränkungen kennen.)
create domain test_domain as varchar(15);
create table test (
test_id test_domain,
test_vc varchar(15),
test_n numeric(15, 3),
big_n bigint,
ip_addr inet
);
Verwendung psql
und \d public.test
zeigt korrekte Verwendung des Datentyps test_domain
, der Länge der VARCHAR (n) Spalten, und die Präzision und den Umfang der numerischen (p, n) Spalten.
sandbox = # \ d public.test
Tabelle "public.test"
Spalte | Geben Sie | ein Modifikatoren
--------- + ----------------------- + -----------
test_id | test_domain |
test_vc | Zeichen variierend (15) |
test_n | numerisch (15,3) |
big_n | bigint |
ip_addr | inet |
Diese Abfrage für eine information_schema-Ansicht zeigt die Verwendung von überhaupt nichttest_domain
an. Es werden auch keine Details zu varchar (n) und numerischen (p, s) Spalten gemeldet.
select column_name, data_type
from information_schema.columns
where table_catalog = 'sandbox'
and table_schema = 'public'
and table_name = 'test';
Spaltenname | Datentyp
------------- + -------------------
test_id | Zeichen variiert
test_vc | Zeichen variiert
test_n | numerisch
big_n | Bigint
ip_addr | inet
Sie könnten der Lage sein , alle diese Informationen zu erhalten , indem andere information_schema Ansichten Beitritt oder durch direkt die Systemtabellen abfragen. psql -E
könnte dabei helfen.
Die Funktion pg_typeof()
zeigt die Verwendung von test_domain
varchar (n) und numerischen (p, s) Spalten korrekt an , meldet jedoch nicht die Details.
select pg_typeof(test_id) as test_id,
pg_typeof(test_vc) as test_vc,
pg_typeof(test_n) as test_n,
pg_typeof(big_n) as big_n,
pg_typeof(ip_addr) as ip_addr
from test;
test_id | test_vc | test_n | big_n | ip_addr
------------- + ------------------- + --------- + ------ - + ---------
test_domain | Zeichen variieren | numerisch | bigint | inet