सूचना स्कीमा दृश्य और pg_typeof () अपूर्ण प्रकार की जानकारी लौटाते हैं। इन उत्तरों में से, psql
सबसे सटीक प्रकार की जानकारी देता है। (ओपी को ऐसी सटीक जानकारी की आवश्यकता नहीं हो सकती है, लेकिन सीमाओं को जानना चाहिए।)
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
);
डेटा प्रकार का उपयोग करना psql
और \d public.test
सही ढंग से उपयोग करना test_domain
, varchar (n) कॉलम की लंबाई, और संख्यात्मक (p, s) कॉलम की शुद्धता और पैमाने को दर्शाता है ।
सैंडबॉक्स = # \ d public.test
टेबल "public.test"
स्तंभ | प्रकार | संशोधक
--------- + ----------------------- + -----------
test_id | test_domain |
test_vc | चरित्र भिन्न (15) |
test_n | संख्यात्मक (15,3) |
big_n | bigint |
ip_addr | inet |
एक सूचना_ दृश्य के खिलाफ यह क्वेरी बिल्कुल भी उपयोग नहीं दिखाती है test_domain
। यह भी varchar (n) और संख्यात्मक (p, s) कॉलम के विवरण की सूचना नहीं देता है।
select column_name, data_type
from information_schema.columns
where table_catalog = 'sandbox'
and table_schema = 'public'
and table_name = 'test';
column_name | डाटा प्रकार
------------- + -------------------
test_id | चरित्र भिन्नता
test_vc | चरित्र भिन्नता
test_n | संख्यात्मक
big_n | bigint
ip_addr | मंत्रिमंडल
आप कर सकते हैं सब, या सिस्टम टेबल सीधे पूछताछ की अन्य INFORMATION_SCHEMA विचारों में शामिल होने से है कि जानकारी प्राप्त करने में सक्षम हो। psql -E
उस के साथ मदद कर सकता है।
फ़ंक्शन pg_typeof()
सही तरीके से उपयोग दिखाता है test_domain
, लेकिन varchar (n) और संख्यात्मक (p, s) कॉलम के विवरण की सूचना नहीं देता है।
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 | चरित्र बदलती | सांख्यिक | bigint | मंत्रिमंडल