Pro začátek se rozměrnost pole neodráží v datovém typu v Postgresu. Syntaxe integer[][]
je tolerováno, ale ve skutečnosti je to jen integer[]
interně.
Přečtěte si příručku zde.
To znamená, že rozměry se mohou lišit v rámci stejného datového typu (stejný sloupec tabulky).
Chcete-li získat skutečné rozměry konkrétní hodnoty pole :
SELECT array_dims(my_arr); -- [1:2][1:3]
Nebo jen získat počet dimenzí:
SELECT array_ndims(my_arr); -- 2
Pro podobné potřeby existuje více funkcí pole. Viz tabulku funkcí pole v příručce.
Související:
Pokud potřebujete vynutit určité dimenze ve sloupci, přidejte CHECK
omezení
. Vynucení 2-rozměrných polí:
ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);