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);