PostgreSQL fournit des fonctionnalités avancées pour générer dynamiquement des noms de table en fonction des valeurs d'exécution. Pour créer une table avec un nom dynamique, vous devez utiliser l'instruction PL/PgSQL EXECUTE, soit dans un bloc DO, soit dans une fonction PL/PgSQL.
L'instruction EXECUTE vous permet d'exécuter des commandes SQL dynamiques, vous permettant pour construire des noms de table à partir des chaînes renvoyées. Prenons l'exemple suivant :
SELECT 'backup_' || TO_CHAR(CURRENT_DATE, 'yyyy-mm-dd')
Cette requête renvoie une chaîne qui représente le nom de la table souhaitée. Pour utiliser cette chaîne pour créer une table, vous pouvez utiliser la syntaxe suivante :
DO $$ BEGIN EXECUTE format('CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE, 'yyyy-mm-dd')); END; $$ LANGUAGE plpgsql;
Dans ce code, la fonction format(...) garantit une citation correcte du nom de la table. Le spécificateur de format %I cite automatiquement les identifiants, tandis que la syntaxe format(...) gère les littéraux.
Pour les littéraux, il est recommandé d'utiliser EXECUTE ... USING plutôt que format(...) avec %L . Cependant, pour les identifiants tels que les noms de table/colonne, le modèle %I fournit une alternative concise et élégante aux citations manuelles.
En utilisant l'instruction EXECUTE et PL/PgSQL, vous pouvez générer dynamiquement des noms de table basés sur les valeurs renvoyées. , permettant une plus grande flexibilité et automatisation dans vos applications PostgreSQL.
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!