PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come ottenere la dimensionalità di una colonna ARRAY?

Per cominciare, la dimensionalità di un array non si riflette nel tipo di dati in Postgres. La sintassi integer[][] è tollerato, ma in realtà è solo integer[] internamente.
Leggi il manuale qui.

Ciò significa che le dimensioni possono variare all'interno dello stesso tipo di dati (la stessa colonna della tabella).

Per ottenere le dimensioni effettive di un particolare valore dell'array :

SELECT array_dims(my_arr);  -- [1:2][1:3]

O semplicemente per ottenere il numero di dimensioni:

SELECT array_ndims(my_arr);  -- 2

Ci sono più funzioni di matrice per esigenze simili. Vedi tabella delle funzioni di array nel manuale.

Correlati:

Se devi applicare dimensioni particolari in una colonna, aggiungi un CHECK vincolo . Per applicare matrici bidimensionali:

ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);