sql >> Database >  >> RDS >> PostgreSQL

Hoe de dimensionaliteit van een ARRAY-kolom te krijgen?

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


  1. PSQLEUitzondering:deze ResultSet is gesloten

  2. Van het tijdstempel in SQL, records selecteren van vandaag, gisteren, deze week, deze maand en tussen twee datums php mysql

  3. Hoe pg_dump te gebruiken met een verbindings-uri / url?

  4. Array doorgeven aan Oracle-procedure vanuit c#