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

Vender tilbage fra en funktion med OUT parameter

Det ville fungere sådan her:

CREATE OR REPLACE FUNCTION name_function(param_1 varchar
                                   , OUT param_2 bigint)
  LANGUAGE plpgsql AS
$func$
BEGIN
    INSERT INTO table (collumn_seq, param_1)  -- "param_1" also the column name?
    VALUES (DEFAULT, param_1)
    RETURNING collumn_seq
    INTO param2;
END
$func$;

Normalt ville du tilføje en RETURN sætning, men med OUT parametre, dette er valgfrit.
Se manualen for flere detaljer:

  • Vender tilbage fra en funktion
  • Udførelse af en forespørgsel med et resultat på én række

Det simple tilfælde kan dækkes med en almindelig SQL-funktion.
Og du kan udelade målkolonnen, der skal få sin DEFAULT værdi.
Og du kan lige så godt bruge en RETURNS klausul i dette tilfælde:

CREATE OR REPLACE FUNCTION name_function(param_1 varchar)
  RETURNS bigint
  LANGUAGE sql AS
$func$
INSERT INTO table (param_1)  -- "param_1" also the column name?
VALUES (param_1)
RETURNING collumn_seq;
$func$;



  1. Brug flere konfliktmål i ON CONFLICT-klausulen

  2. Generer SQL for at opdatere primærnøgle

  3. Brug af Jenkins med Kubernetes AWS, del 2

  4. Escapende og-tegn i SQL-streng