sql >> Database teknologi >  >> RDS >> PostgreSQL

sæt-værdi-funktion kaldet i kontekst, der ikke kan acceptere et sæt

  1. Kald din Set Returning-funktion i en FROM-klausul.
  2. Angiv altid dine typer.

Det kaldes en Set returnerende funktion , men du vil angive den sammensatte type

Dette er fuldstændig gyldigt,

RETURNS SETOF RECORD $$

Du skal dog muligvis kalde det med,

SELECT email, user_id
FROM 
    app.lookup_email(4,730035455897450,6,'u')
    AS t(email text, user_id integer)

Den kontekst, som du ikke kan kalde en utyperet SRF i, er en, der ikke har en tabel-definition. Denne syntaks kan blive grim, så det er bare nemmere at ændre RETURNS SETOF RECORD til

RETURNS TABLE(email text, user_id integer) AS $$

og brug funktionen uden kolonnedefinitionslisten

SELECT email, user_id
FROM app.lookup_email(4,730035455897450,6,'u')

Find flere oplysninger i dokumenterne



  1. Ændring af en kolonne:null til ikke null

  2. Den angivne nøgle var ikke til stede i ordbogen. med mysql

  3. Opdater db-tabel med en INT

  4. psycopg2.ProgrammingError:syntaksfejl ved eller tæt på stdin-fejl ved forsøg på at kopiere_fra rødforskydning