Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich dynamisch PostgreSQL-Tabellen mit einer Zeichenfolge als Tabellennamen?

Wie erstelle ich dynamisch PostgreSQL-Tabellen mit einer Zeichenfolge als Tabellennamen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-24 08:22:19531Durchsuche

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

Dynamische Verwendung einer zurückgegebenen Zeichenfolge als Tabellenname in PostgreSQL

In PostgreSQL kann es zu einem Szenario kommen, in dem Sie dynamisch einen Tabellennamen aus einem Abfrageergebnis generieren müssen . Dies kann durch die Nutzung der EXECUTE-Anweisung in Kombination mit PL/PgSQL erreicht werden.

Um dies zu erreichen, können Sie die folgenden Schritte ausführen:

  1. Schließen Sie die ein dynamische SQL-Anweisung in einem DO-Block oder PL/PgSQL Funktion:

    DO
    $$
    BEGIN
    EXECUTE format(
        'CREATE TABLE %I AS SELECT * FROM backup',
        'backup_' || to_char(CURRENT_DATE, 'yyyy-mm-dd')
    );
    END;
    $$ LANGUAGE plpgsql;
  2. Formatbezeichner verwenden:
    Die format()-Funktion stellt %I (Bezeichner) und %L (Literal) bereit. Formatbezeichner für die korrekte Anführungszeichenfolge von Bezeichnern bzw. Literalen.

    In diesem Beispiel umgibt %I den Tabellennamen 'backup_' || to_char(CURRENT_DATE, 'yyyy-mm-dd') mit doppelten Anführungszeichen, um sicherzustellen, dass es korrekt als Bezeichner erkannt wird.

  3. Führen Sie die Anweisung aus:
    Die EXECUTE-Anweisung dynamisch führt die generierte SQL-Anweisung aus.

Durch Befolgen dieser Schritte können Sie dynamisch eine Tabelle erstellen Verwenden einer Zeichenfolge, die von einer Abfrage in PostgreSQL zurückgegeben wird.

Das obige ist der detaillierte Inhalt vonWie erstelle ich dynamisch PostgreSQL-Tabellen mit einer Zeichenfolge als Tabellennamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn