Maison >base de données >tutoriel mysql >Comment créer dynamiquement des tables PostgreSQL en utilisant une chaîne comme nom de table ?

Comment créer dynamiquement des tables PostgreSQL en utilisant une chaîne comme nom de table ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-24 08:22:19531parcourir

How to Dynamically Create PostgreSQL Tables Using a String as the Table Name?

Utilisation dynamique d'une chaîne renvoyée comme nom de table dans PostgreSQL

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 :

  1. 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;
  2. 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.

  3. Exécutez l'instruction :
    L'instruction EXECUTE de manière dynamique exécute l'instruction SQL générée.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn