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

Hvordan får man dimensionaliteten af ​​en ARRAY-søjle?

For det første afspejles dimensionaliteten af ​​et array ikke i datatypen i Postgres. Syntaksen integer[][] tolereres, men det er egentlig bare integer[] internt.
Læs manualen her.

Det betyder, at dimensioner kan variere inden for den samme datatype (den samme tabelkolonne).

For at få faktiske dimensioner af en bestemt matrix værdi :

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

Eller for bare at få antallet af dimensioner:

SELECT array_ndims(my_arr);  -- 2

Der er flere array-funktioner til lignende behov. Se tabel over matrixfunktioner i manualen.

Relateret:

Hvis du har brug for at håndhæve bestemte dimensioner i en kolonne, skal du tilføje en CHECK begrænsning . Sådan håndhæves 2-dimensionelle arrays:

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


  1. Følg ekstern database fra Heroku

  2. Fjern SCHEMABINDING fra en brugerdefineret funktion i SQL Server

  3. udarbejdet erklæring, hvor værdien er i matrix

  4. Befolkning af flere borde i sails vandlinje orm