INFORMATION_SCHEMA
Sử dụng psql bạn có thể thấy lược đồ với \d information_schema.columns
hoặc bạn có thể tra cứu nó trong các tài liệu .
View "information_schema.columns"
Column | Type | Collation | Nullable | Default
--------------------------+------------------------------------+-----------+----------+---------
... stuff cropped..
is_nullable | information_schema.yes_or_no | | |
Thông số kỹ thuật SQL
Nhìn lên information_schema.columns.is_nullable
thông số kỹ thuật chúng ta có thể thấy đó là lỗi của thông số kỹ thuật - như thường xảy ra với các công cụ. Bạn không thể xóa 9.000 năm di sản. Đặc biệt với một cái gì đó được cho là cung cấp một giao diện đáng tin cậy. Từ đặc tả SQL 2011,
IS_NULLABLE INFORMATION_SCHEMA.YES_OR_NO
CONSTRAINT COLUMNS_IS_NULLABLE_NOT_NULL NOT NULL,
Và bạn cũng có thể thấy định nghĩa của INFORMATION_SCHEMA.YES_OR_NO
định nghĩa trong thông số kỹ thuật,
CREATE DOMAIN YES_OR_NO AS
CHARACTER VARYING (3)
CHARACTER SET SQL_IDENTIFIER
CONSTRAINT YES_OR_NO_CHECK
CHECK (VALUE IN ( 'YES', 'NO' ) );
GRANT USAGE ON DOMAIN YES_OR_NO
TO PUBLIC WITH GRANT OPTION;
Danh mục dành riêng cho RDBM của PostgreSQL
Nếu bạn không cần giao diện chuẩn hóa chung, bạn thường có thể tìm thấy thứ gì đó lành mạnh hơn pg_catalog
. Trong trường hợp này bạn muốn pg_catalog.pg_attribute
. Hãy kiểm tra xem \d pg_catalog.pg_attribute
,
Table "pg_catalog.pg_attribute"
Column | Type | Collation | Nullable | Default
---------------+-----------+-----------+----------+---------
attnotnull | boolean | | not null |
Có boolean của bạn.
Tài liệu PostgreSQL
Các tài liệu PostgreSQL về Lược đồ thông tin: Các kiểu dữ liệu cũng thực sự giải quyết vấn đề này,
Một miền chuỗi ký tự chứa CÓ hoặc KHÔNG . Điều này được sử dụng để thể hiện dữ liệu Boolean (đúng / sai) trong lược đồ thông tin. (Lược đồ thông tin được phát minh trước khi loại boolean
được thêm vào tiêu chuẩn SQL, vì vậy quy ước này là cần thiết để giữ cho lược đồ thông tin tương thích ngược.)