Zunächst einmal spiegelt sich die Dimensionalität eines Arrays nicht im Datentyp in Postgres wider. Die Syntax integer[][]
wird toleriert, aber es ist wirklich nur integer[]
intern.
Lesen Sie das Handbuch hier.
Das bedeutet, dass Dimensionen innerhalb des gleichen Datentyps (der gleichen Tabellenspalte) variieren können.
Um die tatsächlichen Dimensionen eines bestimmten Array-Werts zu erhalten :
SELECT array_dims(my_arr); -- [1:2][1:3]
Oder um nur die Anzahl der Dimensionen zu erhalten:
SELECT array_ndims(my_arr); -- 2
Es gibt weitere Array-Funktionen für ähnliche Anforderungen. Siehe Tabelle der Array-Funktionen im Handbuch.
Verwandte:
Wenn Sie bestimmte Dimensionen in einer Spalte erzwingen müssen, fügen Sie ein CHECK
Einschränkung
. So erzwingen Sie zweidimensionale Arrays:
ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);