PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como obter a dimensionalidade de uma coluna ARRAY?


Para começar, a dimensionalidade de um array não é refletida no tipo de dados no Postgres. A sintaxe integer[][] é tolerado, mas na verdade é apenas integer[] internamente.
Leia o manual aqui.

Isso significa que as dimensões podem variar dentro do mesmo tipo de dados (a mesma coluna da tabela).

Para obter as dimensões reais de uma matriz específica valor :
SELECT array_dims(my_arr);  -- [1:2][1:3]

Ou apenas para obter o número de dimensões:
SELECT array_ndims(my_arr);  -- 2

Existem mais funções de matriz para necessidades semelhantes. Consulte a tabela de funções de matriz no manual.

Relacionado:

Se você precisar impor dimensões específicas em uma coluna, adicione um CHECK restrição . Para aplicar matrizes bidimensionais:
ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);