Na początek wymiar tablicy nie jest odzwierciedlony w typie danych w Postgresie. Składnia integer[][]
jest tolerowany, ale tak naprawdę to tylko integer[]
wewnętrznie.
Przeczytaj instrukcję tutaj.
Oznacza to, że wymiary mogą się różnić w ramach tego samego typu danych (ta sama kolumna tabeli).
Aby uzyskać rzeczywiste wymiary określonej tablicy wartość :
SELECT array_dims(my_arr); -- [1:2][1:3]
Lub po prostu uzyskać liczbę wymiarów:
SELECT array_ndims(my_arr); -- 2
Dla podobnych potrzeb istnieje więcej funkcji tablicowych. Zobacz tabelę funkcji tablicowych w podręczniku.
Powiązane:
Jeśli chcesz wymusić określone wymiary w kolumnie, dodaj CHECK
ograniczenie
. Aby wymusić tablice dwuwymiarowe:
ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);