Heim > Datenbank > MySQL-Tutorial > Wie verwende ich dynamische Werte als Tabellennamen in PostgreSQL?

Wie verwende ich dynamische Werte als Tabellennamen in PostgreSQL?

Mary-Kate Olsen
Freigeben: 2024-12-27 06:02:14
Original
442 Leute haben es durchsucht

How to Use Dynamic Values as Table Names in PostgreSQL?

Verwenden dynamischer Werte als Tabellennamen in PostgreSQL

Beim Umgang mit Datenbankoperationen ist es oft notwendig, dynamische Werte als Tabellennamen zu verwenden. Dies kann durch dynamisches SQL erreicht werden, bei dem der Tabellenname während der Abfrageausführung ermittelt wird.

In PostgreSQL kann dynamisches SQL mithilfe der PL/PgSQL-EXECUTE-Anweisung innerhalb eines DO-Blocks oder einer PL/PgSQL-Funktion implementiert werden. Gewöhnliches SQL unterstützt kein dynamisches SQL.

Betrachten Sie beispielsweise das folgende Ziel: Verwenden des Ergebnisses einer Abfrage, um den Tabellennamen für eine nachfolgende Abfrage dynamisch zu bestimmen.

Abfrage an Ermitteln Sie den Tabellennamen:

SELECT 'backup_' || TO_CHAR(CURRENT_DATE,'yyyy-mm-dd')
Nach dem Login kopieren

Gewünschter Folgename Abfrage:

CREATE TABLE (SELECT 'backup_' || TO_CHAR(CURRENT_DATE,'yyyy-mm-dd')) AS * SELECT FROM backup
Nach dem Login kopieren

Lösung mit PL/PgSQL EXECUTE:

DO
$$
BEGIN
EXECUTE format('CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE,'yyyy-mm-dd'));
END;
$$
LANGUAGE plpgsql;
Nach dem Login kopieren

Erklärung:

Die Funktion format(...) wird zum Erstellen der dynamischen SQL-Anweisung verwendet. Der %I-Formatbezeichner gewährleistet die korrekte Anführungszeichen des Tabellen-/Spaltennamens.

Hinweis:

Für Literalwerte wird empfohlen, anstelle von EXECUTE ... USING zu verwenden format(...) mit %L. Für Bezeichner wie Tabellennamen ist das Format %I-Muster jedoch eine praktische Alternative zur Verwendung von quote_ident.

Das obige ist der detaillierte Inhalt vonWie verwende ich dynamische Werte als Tabellennamen in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage