Création de tables virtuelles avec un jeu d'enregistrements dans PostgreSQL
Cet article aborde la création de tables virtuelles à l'aide de l'approche de jeu d'enregistrements dans PostgreSQL. Une table virtuelle ne possède pas son propre stockage de données sous-jacent ; il s'agit plutôt d'une représentation temporaire de données basée sur des paramètres ou des calculs transmis.
Pour créer une table virtuelle qui renvoie trois colonnes et un nombre inconnu de lignes, utilisez la fonction PL/pgSQL suivante :
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;
Cette fonction utilise la clause RETURNS TABLE pour définir le type de ligne renvoyé par la fonction. La commande RETURN QUERY génère plusieurs lignes à l'aide d'une expression VALUES. Les clauses IMMUTABLE et ROWS 3 optimisent les performances de la fonction.
Pour invoquer la table virtuelle, appelez simplement la fonction :
SELECT * FROM f_foo();
De plus, vous pouvez construire des tables virtuelles à l'aide d'une simple instruction SQL. :
VALUES (1,2,3), (3,4,5), (3,4,5)
Pour les cas plus complexes, définissez les noms et types de colonnes :
SELECT * FROM ( VALUES (1::int, 2::int, 3::int) , (3, 4, 5) , (3, 4, 5) ) AS t(a, b, c);
Enfin, encapsuler la création de tables virtuelles dans une fonction SQL :
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;
En mettant en œuvre ces approches, vous pouvez créer efficacement des tables virtuelles dans PostgreSQL, permettant ainsi la flexibilité et la personnalisation du traitement des données.
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!