Om te beginnen wordt de dimensionaliteit van een array niet weerspiegeld in het gegevenstype in Postgres. De syntaxis integer[][]
wordt getolereerd, maar het is eigenlijk gewoon integer[]
intern.
Lees de handleiding hier.
Dit betekent dat dimensies kunnen variëren binnen hetzelfde gegevenstype (dezelfde tabelkolom).
Om de werkelijke afmetingen van een bepaalde array te krijgen waarde :
SELECT array_dims(my_arr); -- [1:2][1:3]
Of om gewoon het aantal dimensies te krijgen:
SELECT array_ndims(my_arr); -- 2
Er zijn meer arrayfuncties voor vergelijkbare behoeften. Zie tabel met arrayfuncties in de handleiding.
Gerelateerd:
Als u bepaalde dimensies in een kolom moet afdwingen, voegt u een CHECK
beperking
. Om 2-dimensionale arrays af te dwingen:
ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);