sql >> Databasteknik >  >> RDS >> PostgreSQL

SQL-funktion returtyp:TABLE vs SETOF-poster

När du returnerar SETOF record utdatakolumnerna är inte skrivna och namngivna. Det här formuläret kan alltså inte användas direkt i en FROM-sats som om det vore en underfråga eller en tabell.

Det vill säga när du utfärdar:

SELECT * from events_by_type_2('social');

vi får det här felet:

Det kan dock "castas" till rätt kolumntyper av SQL-anroparen. Det här formuläret fungerar:

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

och resulterar i:

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

Av denna anledning SETOF record anses mindre praktiskt. Den bör endast användas när kolumntyperna för resultaten inte är kända i förväg.



  1. Identifierande relation - många till många

  2. Okänd kolumn i "fältlista"-fel på MySQL Update-fråga

  3. Användarnamn, Lösenord, Saltning, Kryptering, Hash – Hur fungerar det hela?

  4. ASIN() Exempel i SQL Server