sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo obtener la dimensionalidad de una columna ARRAY?

Para empezar, la dimensionalidad de una matriz no se refleja en el tipo de datos en Postgres. La sintaxis integer[][] se tolera, pero en realidad es solo integer[] internamente.
Lea el manual aquí.

Esto significa que las dimensiones pueden variar dentro del mismo tipo de datos (la misma columna de la tabla).

Para obtener las dimensiones reales de una matriz en particular valor :

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

O simplemente para obtener el número de dimensiones:

SELECT array_ndims(my_arr);  -- 2

Hay más funciones de matriz para necesidades similares. Consulte la tabla de funciones de matriz en el manual.

Relacionado:

Si necesita aplicar dimensiones particulares en una columna, agregue un CHECK restricción . Para aplicar arreglos bidimensionales:

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