Ergebnis 1 bis 9 von 9

Thema: pg_dump für einzelne Tabelle

  1. #1
    gigabert ist offline Neuer Benutzer
    Registriert seit
    31.07.2009
    Beiträge
    20

    Standard pg_dump für einzelne Tabelle

    Hallo,

    ich hab in meiner Datenbank 13 Tabellen, und möchte nun aber nur bei einer Tabelle die Daten per pg_dump auslesen und in einer Datei speichern.

    Ich habe das mit folgendem Befehl versucht:
    Code:
    pg_dump -U Benutzername -d Datenbankname -t Tabellenname > db.out
    Egal, ob ich den Tabellenname in Anführungszeichen setze oder nicht, ich bekomme immer nur die Meldung:
    Code:
    pg_dump: Keine passenden Tabellen gefunden
    Erst wenn ich den Tabellennamen weglasse, wird die komplette Datenbank in die Datei geschrieben, sowohl Struktur der Tabellen als auch Daten. Wie schaffe ich es, nur eine einzige Tabelle auszulesen?

    Gruss
    Bert

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von gigabert Beitrag anzeigen
    Hallo,

    ich hab in meiner Datenbank 13 Tabellen, und möchte nun aber nur bei einer Tabelle die Daten per pg_dump auslesen und in einer Datei speichern.

    Ich habe das mit folgendem Befehl versucht:
    Code:
    pg_dump -U Benutzername -d Datenbankname -t Tabellenname > db.out
    Egal, ob ich den Tabellenname in Anführungszeichen setze oder nicht, ich bekomme immer nur die Meldung:
    Code:
    pg_dump: Keine passenden Tabellen gefunden
    Erst wenn ich den Tabellennamen weglasse, wird die komplette Datenbank in die Datei geschrieben, sowohl Struktur der Tabellen als auch Daten. Wie schaffe ich es, nur eine einzige Tabelle auszulesen?

    Gruss
    Bert
    Liegt diese Tabelle im search_path des aufrufenden Users? Falls nein: gebe das Schema mit an, also schema.tabelle. Oder: verwendet die Tabelle im Namen Großbuchstaben? Dann quote den Namen anständig.

    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

  3. #3
    gigabert ist offline Neuer Benutzer
    Registriert seit
    31.07.2009
    Beiträge
    20

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    Liegt diese Tabelle im search_path des aufrufenden Users? Falls nein: gebe das Schema mit an, also schema.tabelle. Oder: verwendet die Tabelle im Namen Großbuchstaben? Dann quote den Namen anständig.
    Wo kann ich das mit dem search_path denn sehen bzw. einstellen? Also, es ist jedenfalls ein anderer User, der den pg_dump aufruft. Deshalb gebe ich ja den User der DB mit -U an. Wie schon gesagt, für die ganze Datenbank hat das geklappt, nur für die einzelne Tabelle nicht.

    In dem Tabellennamen ist ein Grossbuchstabe drin. Der Name ist "Stamm". Ich hab jetzt bei dem pg_dump auch mal das Schema mit angegeben, und auch alles in Anführungszeichen geschrieben:

    public.Stamm
    public."Stamm"
    "public"."Stamm"
    "public.Stamm"

    Klappt aber alles trotzdem nicht.

    Gruss
    Bert

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von gigabert Beitrag anzeigen
    Wo kann ich das mit dem search_path denn sehen bzw. einstellen? Also, es ist jedenfalls ein anderer User, der den pg_dump aufruft. Deshalb gebe ich ja den User der DB mit -U an. Wie schon gesagt, für die ganze Datenbank hat das geklappt, nur für die einzelne Tabelle nicht.

    In dem Tabellennamen ist ein Grossbuchstabe drin. Der Name ist "Stamm". Ich hab jetzt bei dem pg_dump auch mal das Schema mit angegeben, und auch alles in Anführungszeichen geschrieben:

    public.Stamm
    public."Stamm"
    "public"."Stamm"
    "public.Stamm"

    Klappt aber alles trotzdem nicht.

    Gruss
    Bert
    Code:
    test=*# create table "Stamm" (i int);
    CREATE TABLE                         
    test=*# insert into "Stamm" values (1);
    INSERT 0 1                             
    test=*# commit;                        
    COMMIT                                 
    test=# \q                              
    kretschmer@tux:~$ pg_dump -t '"Stamm"' test | wc -l
    41
    kretschmer@tux:~$
    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

  5. #5
    gigabert ist offline Neuer Benutzer
    Registriert seit
    31.07.2009
    Beiträge
    20

    Standard

    Hallo,

    das Quoting war bei mir wohl falsch. Mit
    Code:
    ... '"Stamm"' ...
    hat es dann auch prima geklappt. Danke für den Tipp...

    Gruss
    Bert

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

    Standard

    Und das nächste Mal lernen wir, dass SQL eigentlich alle Bezeichner groß geschrieben haben möchte. Und das PostgreSQL eigentlich alle Bezeichner klein geschrieben haben möchte.

    Alles andere verursacht nur unnötig Aufwand und Probleme, weil man wirklich jeden Namen quoten muss.
    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

  7. #7
    gigabert ist offline Neuer Benutzer
    Registriert seit
    31.07.2009
    Beiträge
    20

    Standard

    OK, danke für diesen Tipp. Dann werde ich wohl alle meine Tabellennamen umändern und nur noch Kleinbuchstaben benutzen.

    Gruss
    Bert

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

    Standard

    Musst du nicht - aber vereinfacht die Arbeit ganz erheblich.
    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

  9. #9
    gigabert ist offline Neuer Benutzer
    Registriert seit
    31.07.2009
    Beiträge
    20

    Standard

    Hmm, na ja, wenn es die Arbeit vereinfacht, dann ist es ja fast doch schon Pflicht. Lieber sich gleich die bessere Schreibweise angewöhnen.

    Gruss
    Bert

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 15.12.2010, 13:53
  2. Einzelne Benutzerrechte für Tabellen
    Von blade999 im Forum PGAdmin
    Antworten: 1
    Letzter Beitrag: 24.03.2010, 09:17
  3. Einzelne Experten-Validierung von Spalten
    Von christianbraun im Forum Allgemeines
    Antworten: 4
    Letzter Beitrag: 20.01.2007, 14:38
  4. Hinzufügen von Usern für einzelne Tabellen
    Von Cuthalion im Forum Benutzer- & Rechteverwaltung
    Antworten: 2
    Letzter Beitrag: 08.06.2006, 20:31
  5. pg_dump tabelle weglassen
    Von stm im Forum SQL
    Antworten: 1
    Letzter Beitrag: 18.05.2006, 16:29

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