PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Twórz tablicę postgres niestandardowych domen

Innym możliwym obejściem jest:

CREATE TYPE foo_tup AS (item foo);

Typy domen mogą być opakowane w takie krotki, co daje konstruktora tablicy. Minusem jest to, że prawdopodobnie chcesz teraz tworzyć rzuty:

select array[row('foo')::foo_tup, row('bar')];

Na przykład możesz utworzyć funkcję i rzutowanie:

create function foo_tup(foo) returns foo_tup language sql as $$
    select row($1)::foo_tup;
$$ immutable;
create function foo(foo_tup) returns foo language sql as $$
     select $1.item;
$$;
create cast (foo as foo_tup) with function foo_tup(foo);
create cast (foo_tup as foo) with function foo(foo_tup);

Wtedy agregacja staje się łatwa:

select array_agg(myfoo::foo_tup) from my_table; 

choć masz dodatkowe nawiasy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz wiele identyfikatorów z sekwencji PostgreSQL

  2. Jak wykonać kopię zapasową partycjonowanej tabeli w PostgresSQL 10?

  3. Zarządzanie i automatyzacja PostgreSQL z ClusterControl

  4. Migracja bazy danych SQL Server 2008 do Postgres

  5. Dodanie nowej kolumny w tabeli tymczasowej