PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment obtenir la dimensionnalité d'une colonne ARRAY ?

Pour commencer, la dimensionnalité d'un tableau n'est pas reflétée dans le type de données dans Postgres. La syntaxe integer[][] est toléré, mais c'est vraiment juste integer[] en interne.
Lire le manuel ici.

Cela signifie que les dimensions peuvent varier au sein du même type de données (la même colonne de tableau).

Pour obtenir les dimensions réelles d'un tableau particulier valeur :

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

Ou simplement pour obtenir le nombre de dimensions :

SELECT array_ndims(my_arr);  -- 2

Il existe d'autres fonctions de tableau pour des besoins similaires. Voir tableau des fonctions de tableau dans le manuel.

Connexe :

Si vous devez appliquer des dimensions particulières dans une colonne, ajoutez un CHECK contrainte . Pour appliquer des tableaux à 2 dimensions :

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