Maison >base de données >tutoriel mysql >Comment puis-je gérer efficacement les paramètres d'entrée variables dans les fonctions PostgreSQL ?
Fonctions avec paramètres d'entrée variables
Dans PostgreSQL, des procédures stockées et des fonctions peuvent être définies pour gérer des paramètres d'entrée variables. Cela permet une plus grande flexibilité lors de l'exécution d'opérations de base de données.
Une approche de la gestion des paramètres d'entrée variables consiste à créer une fonction distincte pour chaque objectif. Cependant, cela peut entraîner une prolifération de fonctions, en particulier pour les tableaux comportant de nombreuses colonnes.
Une approche alternative consiste à définir une fonction unique qui utilise un paramètre de mode pour déterminer les paramètres d'entrée spécifiques à utiliser. Cette approche est plus efficace et évite le besoin de plusieurs fonctions.
Exemple
Considérez la fonction suivante pour mettre à jour une table de sites avec des informations de site définies par l'utilisateur :
CREATE OR REPLACE FUNCTION update_site( mode integer, name character varying, city character varying, telephone integer, ) RETURNS integer AS $$ BEGIN IF mode = 0 THEN BEGIN UPDATE "Sites" SET ("City","Telephone") = (city,telephone) WHERE "SiteName" = name; RETURN 1; EXCEPTION WHEN others THEN RAISE NOTICE 'Error on site update: %, %',SQLERRM,SQLSTATE; RETURN 0; END; ELSIF mode = 1 THEN BEGIN UPDATE "Sites" SET "City" = city WHERE "SiteName" = name; RETURN 1; EXCEPTION WHEN others THEN RAISE NOTICE 'Error on site update: %, %',SQLERRM,SQLSTATE; RETURN 0; END; ELSIF mode = 2 THEN BEGIN UPDATE "Sites" SET "Telephone" = telephone WHERE "SiteName" = name; RETURN 1; EXCEPTION WHEN others THEN RAISE NOTICE 'Error on site update: %, %',SQLERRM,SQLSTATE; RETURN 0; END; ELSE RAISE NOTICE 'Error on site update: %, %',SQLERRM,SQLSTATE; RETURN 0; END IF; END; $$ LANGUAGE plpgsql;
Cette fonction peut gérer trois modes :
En utilisant le paramètre mode, la mise à jour souhaitée peut être effectuée avec une seule fonction appel, sans avoir besoin de plusieurs fonctions.
Valeurs par défaut pour Paramètres
Une autre option pour gérer les paramètres d'entrée variables consiste à utiliser les valeurs par défaut. Cela permet des paramètres facultatifs, sans avoir besoin d’un paramètre de mode. Par exemple, la fonction suivante ne mettra à jour la ville que si elle est fournie :
CREATE OR REPLACE FUNCTION update_site( name character varying, city character varying DEFAULT NULL, telephone integer DEFAULT NULL, ) RETURNS integer AS $$ BEGIN UPDATE "Sites" SET ("City", "Telephone") = (city, telephone) WHERE "SiteName" = name; RETURN 1; EXCEPTION WHEN others THEN RAISE NOTICE 'Error on site update: %, %',SQLERRM,SQLSTATE; RETURN 0; END; $$ LANGUAGE plpgsql;
La meilleure approche pour gérer les paramètres d'entrée variables dépend des exigences spécifiques de l'application. Si les paramètres d'entrée varient considérablement, l'utilisation d'un paramètre de mode ou de plusieurs fonctions peut être nécessaire. Cependant, si les paramètres d'entrée sont cohérents, l'utilisation des valeurs par défaut peut fournir une solution plus simple et plus efficace.
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!