Renvoi d'une table virtuelle à partir d'une fonction dans Postgres
Dans Postgres, la création d'une table virtuelle personnalisée avec plusieurs lignes et colonnes à l'aide d'une fonction nécessite un syntaxe. Cet article montre comment écrire correctement une fonction qui renvoie un ensemble d'enregistrements ressemblant à une table virtuelle.
Syntaxe correcte
Pour définir une fonction qui renvoie une table virtuelle avec trois colonnes entières, utilisez le PL/pgSQL suivant code :
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $func$ BEGIN RETURN QUERY VALUES (1,2,3) , (3,4,5) , (3,4,5) ; END $func$ LANGUAGE plpgsql IMMUTABLE ROWS 3;
Explication
Options alternatives
SQL simple : Pour des scénarios simples, une simple instruction SQL peut suffire :
VALUES (1,2,3), (3,4,5), (3,4,5)
Fonction SQL : Vous pouvez également envelopper l'instruction ci-dessus dans un SQL fonction :
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $func$ VALUES (1, 2, 3) , (3, 4, 5) , (3, 4, 5); $func$ LANGUAGE sql IMMUTABLE ROWS 3;
Utilisation
Pour récupérer la table virtuelle :
SELECT * FROM f_foo();
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!