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
Libérer: 2024-12-24 08:22:19
original
528 Les gens l'ont consulté

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;
    Copier après la connexion
  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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal