Till att börja med, dimensionaliteten hos en array återspeglas inte i datatypen i Postgres. Syntaxen integer[][]
tolereras, men det är egentligen bara integer[]
internt.
Läs manualen här.
Det betyder att dimensioner kan variera inom samma datatyp (samma tabellkolumn).
För att få faktiska dimensioner för en viss arrays värde :
SELECT array_dims(my_arr); -- [1:2][1:3]
Eller för att bara få antalet dimensioner:
SELECT array_ndims(my_arr); -- 2
Det finns fler array-funktioner för liknande behov. Se tabell över arrayfunktioner i manualen.
Relaterat:
Om du behöver tvinga fram särskilda dimensioner i en kolumn, lägg till en CHECK
begränsning
. Så här tvingar du fram tvådimensionella arrayer:
ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);