Có một đơn giản hơn nhiều trong PostgreSQL để lấy kiểu cột.
SELECT pg_typeof(col)::text FROM tbl LIMIT 1
Tất nhiên, bảng phải chứa ít nhất một hàng. Và bạn chỉ nhận được kiểu cơ sở mà không có bổ ngữ kiểu (nếu có). Sử dụng tùy chọn thay thế bên dưới nếu bạn cũng cần.
Bạn cũng có thể sử dụng hàm cho các hằng số. hướng dẫn về pg_typeof()
.
Đối với một bảng trống (hoặc bất kỳ), bạn có thể sử dụng truy vấn danh mục hệ thống pg_attribute
để có danh sách đầy đủ các cột và loại tương ứng của chúng theo thứ tự:
SELECT attnum, attname AS column, format_type(atttypid, atttypmod) AS type
FROM pg_attribute
WHERE attrelid = 'myschema.mytbl'::regclass -- optionally schema-qualified
AND NOT attisdropped
AND attnum > 0
ORDER BY attnum;
Hướng dẫn về format_type()
và trên các loại mã nhận dạng đối tượng
như regclass
.