Đối với người mới bắt đầu, kích thước của một mảng không được phản ánh trong kiểu dữ liệu trong Postgres. Cú pháp integer[][]
được chấp nhận, nhưng nó thực sự chỉ là integer[]
nội bộ.
Đọc hướng dẫn tại đây.
Điều này có nghĩa là các thứ nguyên có thể khác nhau trong cùng một loại dữ liệu (cùng một cột bảng).
Để nhận kích thước thực tế của một mảng cụ thể giá trị :
SELECT array_dims(my_arr); -- [1:2][1:3]
Hoặc chỉ lấy số thứ nguyên:
SELECT array_ndims(my_arr); -- 2
Có nhiều chức năng mảng hơn cho các nhu cầu tương tự. Xem bảng các hàm mảng trong hướng dẫn sử dụng.
Có liên quan:
Nếu bạn cần thực thi các thứ nguyên cụ thể trong một cột, hãy thêm CHECK
ràng buộc
. Để thực thi mảng 2 chiều:
ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);