Dans PostgreSQL, vous pouvez rencontrer un scénario dans lequel vous devez générer dynamiquement un nom de table à partir d'un résultat de requête . Ceci peut être réalisé en exploitant l'instruction EXECUTE en combinaison avec PL/PgSQL.
Pour ce faire, vous pouvez suivre les étapes suivantes :
Joindre le instruction SQL dynamique dans un bloc DO ou PL/PgSQL function :
DO $$ BEGIN EXECUTE format( 'CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE, 'yyyy-mm-dd') ); END; $$ LANGUAGE plpgsql;
Utiliser les spécificateurs de format :
La fonction format() fournit %I (identifiant) et %L (littéral) spécificateurs de format pour citer correctement les identifiants et les littéraux, respectivement.
Dans cet exemple, %I entoure le nom de la table 'sauvegarde_' || to_char(CURRENT_DATE, 'aaaa-mm-jj') avec des guillemets doubles, garantissant qu'il est correctement reconnu comme un identifiant.
En suivant ces étapes, vous pouvez créer dynamiquement une table utilisant une chaîne renvoyée par une requête dans 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!