sql >> Databáze >  >> RDS >> PostgreSQL

Návratový typ funkce SQL:TABLE vs záznamy SETOF

Při návratu SETOF record výstupní sloupce nejsou zadány a nejsou pojmenovány. Tento formulář tedy nelze použít přímo v klauzuli FROM, jako by to byl poddotaz nebo tabulka.

Tedy při vydávání:

SELECT * from events_by_type_2('social');

dostaneme tuto chybu:

Volající SQL jej však může "obsadit" do správných typů sloupců. Tento formulář funguje:

SELECT * from events_by_type_2('social') as (id bigint, name text);

a výsledkem je:

 id |      name      
----+----------------
  1 | Dance Party
  2 | Happy Hour
 ...

Z tohoto důvodu SETOF record je považován za méně praktický. Mělo by se používat pouze v případě, že typy sloupců výsledků nejsou předem známy.



  1. Chyba sqoop exportu místního csv do MySQL na mapreduce

  2. Problém se socketem PostgreSQL Mountain Lion

  3. Použití DISTINCT uvnitř JOIN způsobuje potíže

  4. Jak nainstalovat pgAdmin 4 na Ubuntu 20.04/18.04/16.04