Ergebnis 1 bis 3 von 3

Thema: Tabellen nach Prefix auf einmal löschen

  1. #1
    minimike ist offline Benutzer
    Registriert seit
    01.03.2010
    Beiträge
    42

    Standard Tabellen nach Prefix auf einmal löschen

    hi

    bin noch neu mit PostgreSQL aber DBmail und Glassfish rennen damit richtig klasse

    Ich habe aus versehen ein Skript in einer falschen Datenbank angelegt. Dabei wurde mehrere Tabellen mit der Tabellenprefix phpr_ angelegt. Einzeln löschen würde gehen, aber ist irgendwie umständlich.
    Kann ich alle Tabellen mit einer Tabellenprefix auch auf einmal löschen?

  2. #2
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Jain. Nicht von Haus aus.

    Du könntest dir eine kleine Funktion schreiben, die das macht.

    Du könntest auch einfach die entspechenden Tabellen auflisten und in einem Editor mittels Makrofunktion das entsprechende "DROP TABLE" und ";" hinzufügen und das ganze dann mittels \i in psql einlesen.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  3. #3
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    Jain. Nicht von Haus aus.

    Du könntest dir eine kleine Funktion schreiben, die das macht.

    Du könntest auch einfach die entspechenden Tabellen auflisten und in einem Editor mittels Makrofunktion das entsprechende "DROP TABLE" und ";" hinzufügen und das ganze dann mittels \i in psql einlesen.
    Man könnte auch ein SQL-Einzeiler verwenden, der alle Tabellen nennt und ein drop table davor setzt, diesen psql vorwerfen und die Ausgabe wieder nach psql werfen, in etwa so:

    Code:
    psql test -t -c "select 'drop table ' || quote_ident(table_name) || ';' from information_schema.tables where table_schema = 'public' and table_name ~ '^a' and table_type='BASE TABLE';" | psql test
    Löscht in der DB test im Schema Public alle Tabellen, die mit a anfangen...


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum