Các khung nhìn lược đồ thông tin và pg_typeof () trả về thông tin loại không đầy đủ. Trong số các câu trả lời, psql
đưa ra thông tin loại chính xác nhất. (OP có thể không cần thông tin chính xác như vậy, nhưng nên biết những hạn chế.)
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
);
Sử dụng psql
và \d public.test
hiển thị chính xác việc sử dụng kiểu dữ liệu test_domain
, độ dài của cột varchar (n) và độ chính xác và tỷ lệ của cột số (p, s).
hộp cát = # \ d công khai.
Bảng "công khai"
Cột | Loại | Công cụ sửa đổi
--------- + ----------------------- + -----------
test_id | tên miền thử nghiệm |
test_vc | thay đổi ký tự (15) |
thử nghiệm | số (15,3) |
big_n | ông lớn |
ip_addr | inet |
Truy vấn này đối với chế độ xem information_schema hoàn toàn không hiển thị việc sử dụng test_domain
. Nó cũng không báo cáo chi tiết về các cột varchar (n) và số (p, s).
select column_name, data_type
from information_schema.columns
where table_catalog = 'sandbox'
and table_schema = 'public'
and table_name = 'test';
cột_name | loại dữ liệu
------------- + -------------------
test_id | thay đổi nhân vật
test_vc | thay đổi nhân vật
thử nghiệm | số
big_n | ông lớn
ip_addr | inet
Bạn có thể có được tất cả thông tin đó bằng cách tham gia các khung nhìn information_schema khác hoặc bằng cách truy vấn trực tiếp các bảng hệ thống. psql -E
có thể giúp với điều đó.
Hàm pg_typeof()
hiển thị chính xác việc sử dụng test_domain
, nhưng không báo cáo chi tiết về các cột varchar (n) và số (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 | thử nghiệm | big_n | ip_addr
------------- + ------------------- + --------- + ------ - + ---------
tên miền thử nghiệm | thay đổi nhân vật | số | ông lớn | inet