Error: Realtion "...." already exists

Hallo,

ich fange gerade an mich mit PostgreSQL zu beschäftigen, da die Lizenzpolitik von MySQL mich nervt.

Nun möchte ich Stück für Stück prüfen, was ich an meiner Anwendung umbauen muss, damit die Queries mit PostgreSQL funktionieren.

Angefangen habe ich nun mit dem Erstellen der Datenbank. Meine Create-Table-Anweisungen konnte ich soweit bisher umstellen (nehme nun SQL Standard, der mit MySQL und PostgreSQL funktioniert).

Nach einigen Testläufen (erstellen und löschen der Datenbank) schimpft PostgreSQL aber nun bei jedem Create Table mit

Error: Relation “tabellenname” already exists.

Was muss ich da tun? Die Datenbank mitsamt der Tabellen habe ich jedesmal gelöscht.

Vielen Dank im Voraus,

Fabian

Die Glaskugel ist gerade heruntergefallen. Von daher:

wie wäre es, wenn du den ganzen Ablauf hier pastest, samt Befehlen, die du eintippst und der kompletten Fehlermeldung? Über dem Eingabefeld gibt es ein CODE Button, der ist für so etwas gut geeignet.

Glaskugel hätte ich auch gern :p

Ich glaube das war meine eigene Dummheit. Ich vermute, ich habe nach dem Erstellen der Datenbank nicht in diese gewechselt (so wie use dbname für MySQL wäre).

Ich denke mal, ich erzeuge die Tabellen die ganze Zeit in einer ganz anderen Datenbank. Ich schau mir das dann gleich an, wenn ich wieder im Büro bin. Danke trotzdem für die Hilfe.

Nur zur Klarstellung: das, was in MySQL einzelne Datenbanken sind, sind bei uns Schemas. Welche Version hast Du einklich? Man muß nicht gleich immer eine komplette Datenbank löschen, wenn man da mal was verhauen hat.

Andreas

so, also mein Problem scheint wirklich zu sein, dass die Tabellen alle in “postgres” erstellt werden, und nicht in meiner Datenbank (/Schema).

Ich verwende am Anfang:

CREATE DATABASE dbname ENCODING ‘utf8’;

Kann ich irgendwie mittels Code die aktuelle Datenbank wechseln? (Bei MySQL gibt es use dbname).

Klar. Was spricht dagegen, mal die psql Hilfe zu lesen, die beim Start eingeblendet wird?

?
\h

Sollten dir da weiterhelfen.



\connect dbname

Wenn es Scripte sind, die Du z.B. via psql an die DB verfütterst.


Andreas

sorry, ich arbeite nur auf SQL ebene.
?, \h oder \connect funktionieren da nicht. Das sind doch sicherlich Parameter für die Shell, oder?

Was heisst bei dir “SQL-Ebene”?
Irgendein Programm muss dich zur Datenbank verbinden, dieses Programm kann auch neue Verbindungen aufmachen.

Bei psql ist dies mittels \connect möglich, in einer Programmiersprache macht man eine neue Verbindung auf.

Nein. psql. Falls Du mit ‘SQL ebene’ psql meinst, dann solltest Du mal den Startbildschirm lesen.

Andreas

mmhh. schade. also ich verwende das postgresql plugin in realbasic, Verbinde mich mit dem Server und erzeuge die Datenbank mittels SQL Befehl. Nun möchte ich die Datenbank wechseln.
Scheint wohl nur die Möglichkeit zu geben die Verbindung zu schließen und neu zu verbinden, oder?

Ja, etwas anderes wird dir da nicht übrig bleiben.