Mặc dù những gì laser nói là đúng, tôi tin rằng lý do SRID xuất hiện là 0 là do quyết định của các nhà phát triển Postgis đưa ra rằng SRID không xác định nên được báo cáo là 0 - có một cuộc tranh luận, trong đó -1 cũng được đề xuất. (Tôi biết điều này bởi vì tôi đã tham gia vào cuộc tranh luận đã nói về IRC và ủng hộ -1, vì nó nghĩ rằng nó rõ ràng không được xác định rõ hơn 0).
Nếu bạn nhìn vào định nghĩa của chế độ xem geography_columns,
\df+ geography_columns
SELECT current_database() AS f_table_catalog,
n.nspname AS f_table_schema,
c.relname AS f_table_name,
a.attname AS f_geography_column,
postgis_typmod_dims(a.atttypmod) AS coord_dimension,
postgis_typmod_srid(a.atttypmod) AS srid,
postgis_typmod_type(a.atttypmod) AS type
FROM pg_class c,
pg_attribute a,
pg_type t,
pg_namespace n
WHERE t.typname = 'geography'::name AND a.attisdropped = false AND a.atttypid = t.oid AND a.attrelid = c.oid AND c.relnamespace = n.oid AND NOT pg_is_other_temp_schema(c.relnamespace) AND has_table_privilege(c.oid, 'SELECT'::text);
bạn sẽ thấy một sự giới thiệu cho một hàm postgis_typmod_srid. Theo lỗ thỏ đó, bạn sẽ tìm thấy hàm được định nghĩa ở đây là:
#define TYPMOD_SET_SRID(typmod, srid) ((typmod) = (((typmod) & 0xE00000FF) | ((srid & 0x001FFFFF)<<8))).
Thật dễ dàng để xác nhận điều này bằng cách tạo một cột địa lý và sau đó nhìn vào geography_columns. Cho rằng bạn cũng có thể tạo một cột hình học với bất kỳ hình cầu tùy chỉnh nào, có vẻ hơi vô nghĩa khi cho phép chức năng này trong loại địa lý, với sự phổ biến của WGS84.
`