Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Tabelle Löschen

  1. #11
    Gisman ist offline Erfahrener Benutzer
    Registriert seit
    20.01.2006
    Ort
    Pfalz
    Beiträge
    794

    Standard

    Zitat Zitat von majcho Beitrag anzeigen
    Sorry, beschäftige mich mit PostgreSQL erst seit neuestem (nur in meiner Freizeit), weil ich nach jahrelanger Nutzung von M$-Access weg will.
    Aus welchem Grund? Access ermöglicht als Frontend den einfachen und verständlichen Zugriff auf Datenbanken von der Desktopoberfläche. Postgres _ist_ eine Datenbank. Die funktioniert unabhängig von Vorurteilen gegenüber MS anders als Access. Als Hilfe empfehle ich dir in jedem Fall mal in die Postgres-Doku zu schauen, oder in eins der deutschsprachigen Bücher (deren Autoren sich z.T. hier auch tummeln). Falls du dann immer noch einen Grund siehst, Postgres zu verwenden, werden dir deine dann auftauchenden Fragen hier sicher gern beantwortet. Im übrigen nutze ich selbst ganz gerne für manche Sachen Access als Frontend für Postgres .

    Gruß Uwe
    Have a lot of fun!

  2. #12
    majcho Gast

    Standard

    An PostgresSQL gefällt mir vor allem die Vielseitigkeit, Flexibilität und dennoch ist das Produkt schlank. Access gibts nur noch in den Superteuren Professional Paketen mit viele Jingle & Bells & Rippons. Das stört mich massiv.

    Arbeite mir gerade durch diese beiden Bücher durch:

    PostgresSQL Das Buch
    Datenbankentwicklung mit PostgresSQL

    Dabei habe ich mir versehentlich eine Tabelle ohne Namen angelegt, die ich zum verrecken nicht gelöscht bekomme. Ich könnte auch die ganze Datenbank löschen, dann allerding habe ich immer noch keinen blassen Schimmer wie ich diese "Namenlose Tabelle" entweder 1. Umbenenne oder 2. Lösche.

  3. #13
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von majcho Beitrag anzeigen

    Dabei habe ich mir versehentlich eine Tabelle ohne Namen angelegt, die ich zum verrecken nicht gelöscht bekomme. Ich könnte auch die ganze Datenbank löschen, dann allerding habe ich immer noch keinen blassen Schimmer wie ich diese "Namenlose Tabelle" entweder 1. Umbenenne oder 2. Lösche.
    Mal als Hinweis: die Tabelle ist nicht ohne Namen, der Name (so vermute ich mal) enthält nur 1 oder mehr Leerzeichen und sonst nichts weiter.

    Okay, soweit sicherlich klar, oder?

    Weiter:

    PostgreSQL verwaltet alle Informationen über Tabellen intern auch in einer Tabelle, konkret in pg_tables. Diese Tabelle kann man abfragen. Man kann auch, was deutlich portabler ist, information_schema.tables abfragen.

    Weiter:

    Du benutzt PGAdmin. Das zu benutzen ist nicht per se falsch, aber bedenke: es ist eine GUI, die selber wahrscheinlich mehr Code enthält als PostgreSQL selbst. PostgreSQL bringt 'von Natur aus' psql mit, ist ein Kommandozeilen-Client. Alles, was ich gezeigt habe, ist damit gemacht. Es lohnt sich, sich exakt *dieses* Programm näher anzuschauen.

    Weiter:

    Deine 'namenlose' Tabelle enthält also sehr wahrscheinlich 1 oder mehrere Leerzeichen und Du kannst Dir mittels der genannten information_schema.tables anschauen und das alles geht ganz prima in psql.

    Und nun alles zusammen:

    Wir starten psql, meine Datenbank nennt sich test, ich frage ab, ob es Tabellen gibt, deren Name aus einem Leerzeichen besteht:
    (zur Übung überlasse ich Dir zu erkennen, was ich tippe und was die DB mir sagt)


    Code:
    test=# select table_name  from information_schema.tables where table_type = 'BASE TABLE' and table_schema = 'public' and table_name = ' ';
     table_name
    ------------
    (0 Zeilen)
    nun erstelle ich eine solche Tabelle:

    Code:
    test=*# create table " " (id serial);
    NOTICE:  CREATE TABLE will create implicit sequence " _id_seq" for serial column " .id"
    CREATE TABLE
    Zeit: 33,476 ms
    Nun schaue ich mir diese an:

    Code:
    test=*# select table_name  from information_schema.tables where table_type = 'BASE TABLE' and table_schema = 'public' and table_name = ' ';
     table_name
    ------------
    
    (1 Zeile)
    und lösche diese:

    Code:
    test=*# drop table " ";
    DROP TABLE
    Kontrolle:

    Code:
    test=*# select table_name  from information_schema.tables where table_type = 'BASE TABLE' and table_schema = 'public' and table_name = ' ';
     table_name
    ------------
    (0 Zeilen)
    Du schaffst das auch!


    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

  4. #14
    majcho Gast

    Standard

    Hi Andreas,

    vielen Dank!!! Dass der Code in eine Console gehört, bin ich als Greenhorn nicht gekommen. Habe alles prima nachvollziehen können. Meine Tabelle scheint jedoch ein Phantom zu sein?!? Habe dann stattdessen eine Tabelle mit zwie Leerzeichen eingegeben " " und nach deiner Vorgehensweise oben die " " (=zwei-Leerzeichen-Tabelle) beliebig anlegen und löschen können. Meine Phantomtabelle jedoch nicht.

    Auf meiner Phantomtabelle liegen jedoch constraints und drei Spalten, die auch nicht änderbar/löschbar auch von den abhängigen Tabellen ist selbst ein kaskadiertes löschen nicht möglich. Jetzt kopiere ich alle brauchbaren Tabellen in eine neue Datenbank und lösche die Datenbank.

    Zumindest habe ich jetzt die Zusammenhänge kapiert.

    P.S.: Könnte es auch ein Fehler im Programm PostgerSQL (9.0.1) sein?

  5. #15
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    525

    Standard

    Zitat Zitat von majcho Beitrag anzeigen
    beliebig anlegen und löschen können. Meine Phantomtabelle jedoch nicht.
    "kann nicht löschen" ist keine mir bekannte Fehlermeldung.
    Du musst schon genau erklären was "nicht" funktioniert

    Kriegst Du eine Fehlermeldung?
    Wenn ja, bitte zeige uns das exakte Statement dass Du ausführst und die exakte Fehlermeldung.

    Schon mal dran gedacht, dass es vielleicht drei oder vier Leerzeichen sein könnten?
    Lass doch mal folgendes Statement laufen, dann siehst Du vielleicht besser wieviele Leerzeichen Du brauchst:
    Code:
    select replace(table_name, ' ', '*'), length(table_name)
    from information_schema.tables
    where table_schema = 'public'
    and table_name like ' %'
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

  6. #16
    majcho Gast

    Standard

    Habe den Übeltäter gefunden!!! Es war das Problem mit den Umlauten!!!

    Ich hatte die Tabelle doch mit dem Namen "Ländercode" angelegt. Nachdem ich in der console nach den vorhandenen Namen suchte, spuckte mir die Console den Namen Lndercode ohne "ä" aus. In pgAdmin III war die Tabelle Namenlos sichtbar. Ich habe dann einfach die Tabelle in
    Code:
    ALTER TABLE ländercode RENAME TO laendercode
    umbenannt. Dann war die Tabelle sichtbar geworden. Jetzt lässt sich die Tabelle ändern/löschen.

  7. #17
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Und wieder mal zeigt sich (leider) das grafische Tools zur Fehlersuche denkbar ungeeignet sind.
    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

  8. #18
    pfuetz ist offline Neuer Benutzer
    Registriert seit
    11.03.2010
    Ort
    Nord Hessen
    Beiträge
    11

    Standard

    Also nochmal, falls es unbedingt pgAdmin sein soll:
    In pgAdmin deine Datenbank anklicken.
    Auf das SQL-Icon oben (mit der Lupe) klicken und im SQL-Editor so etwas wie:
    drop table " ";
    -- ein Lehrzeichen
    eingeben! Könnte natürlich auch so etwas wie:
    drop table " "; -- zwei Lehrzeichen
    sein.
    Danach das [>]-Icon klicken.
    "--" Ist hier Kommentar in SQL

    Hatte Deine Antwort mit dem Ländercode zu spät gelesen!

    Na dann viel Spaß noch mit PostgreSQL, Hauptsache Du verliert nicht gleich den Mut ...
    Geändert von pfuetz (22.11.2010 um 09:24 Uhr)

  9. #19
    majcho Gast

    Standard

    Zitat Zitat von pfuetz Beitrag anzeigen

    Hatte Deine Antwort mit dem Ländercode zu spät gelesen!

    Na dann viel Spaß noch mit PostgreSQL, Hauptsache Du verliert nicht gleich den Mut ...
    Für ein Newbie ist ein grafisches Tool für den Einstieg einfacher als das reine Code-Getippe in die Console. Wenn allerdings das grafische Tool Umlaute verschluckt, verzweifelt der Newbie schnell.
    Geändert von majcho (22.11.2010 um 10:50 Uhr)

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 31.05.2011, 16:27
  2. Prüfen ob Tabelle existiert und dann löschen
    Von Ciatronical im Forum SQL
    Antworten: 5
    Letzter Beitrag: 28.11.2010, 13:47
  3. Antworten: 2
    Letzter Beitrag: 19.09.2007, 16:57
  4. Alle Spalten einer Tabelle löschen
    Von nylen im Forum SQL
    Antworten: 1
    Letzter Beitrag: 14.03.2007, 12:46
  5. Trigger bei löschen einer Tabelle
    Von zbenjamin im Forum Trigger und Funktionen
    Antworten: 11
    Letzter Beitrag: 26.04.2006, 14:49

Stichworte

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