PostgreSQL Tabellen hinzufügen, falls nicht vorhanden

redbomber

Bekanntes Mitglied
Hi zusammen,
eine Frage.
Da ich den Anwender seine eigenen Tabellen konfigurieren lasse, prüfe ich ein Konfigurationsfile, in dem alle Tabellen aufgelistet sind.
Diese Tabellen erstelle ich bei jedem Start von meinem Programm.

Mit CREATE TABLE tablename
bzw.
DROP TABLE tablename

erstelle ich die entsprechende Tabelle bzw. lösche eine nicht mehr vorhandene.

Gibt es irgendwie eine Möglichkeit zu prüfen ob die Tabelle existiert?

Gerade erstelle ich die Tabellen immer, auch wenn sie schon vorhanden sind. Das wirft immer eine Exception, die ich abfange...finde ich aber etwas unschön.

Ich suche also nach so etwas:
CREATE TABLE tablename IF NOT EXISTS

geht aber nicht 🙁
 
Habe genau das gesuchte Statement bei google als Suchbegriff eingegeben. Gefunden habe ich u.a. das hier: PostgreSQL create table if not exists - Stack Overflow
Da werden unterschiedlichste Lösungen vorgeschlagen. In leichter Abwandlung einer der Lösungen müsste das hier Dir eigentlich helfen:
SQL:
IF NOT EXISTS (
    SELECT *
    FROM   pg_catalog.pg_tables 
    WHERE  schemaname = 'myschema'
    AND    tablename  = 'mytable'
    )
THEN
   CREATE TABLE myschema.mytable ...;
END IF;
Kann es leider nicht testen, weil ich kein PostgreSQL installiert hab, aber so ungefähr müsst's hinhauen.
 

Zurück
Oben