FEHLER: Datenbank "Datenbankname" existiert nicht

19

Laut Dokumentation kann ich, solange ich nicht mit einer Datenbank verbunden bin, eine Datenbank in der Konsole löschen, indem ich Folgendes verwende:

DROP DATABASE dbname;

Oder ich kann es mit dem Wrapper-Tool löschen dropdb .

In beiden Fällen \lerhalte ich die Fehlermeldung, dass die Datenbank nicht vorhanden ist. Wenn ich jedoch in der Konsole den Befehl eingebe, wird eine Liste der Datenbanken angezeigt, einschließlich derjenigen, die ich löschen möchte.

                                          List of databases
           Name            |   Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
---------------------------+-----------+----------+-------------+-------------+-----------------------
 Blog_development          | myusername | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 Blog_test                 | myusername | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

Der Datenbankname lautet Blog_development (und der Name darunter). Ich habe mit Schienen gespielt und versucht, aus der Online-Dokumentation zu lernen. Ich wollte von vorne anfangen und alles löschen.

Beim Versuch, es zu löschen, heißt es jedoch, dass es nicht existiert. Ich bin brandneu in PostgreSQL, daher bin ich ein bisschen verloren, nichts in der Dokumentation über diesen Fehler, außer dass er auftaucht, wenn er nicht existiert. Natürlich existiert es, es ist genau dort.

Sephethus
quelle
2
Bitte zeigen Sie immer den vollständigen, genauen Text aller Fehlermeldungen und zeigen Sie Ihre PostgreSQL-Version an.
Craig Ringer
Überprüfen Sie den Port, auf dem Ihre DB ausgeführt wird. Die Tools wie dropdb, createdb usw. stellen standardmäßig eine Verbindung zu 5432 her. Dies hat mich überrascht, als meine Datenbank tatsächlich auf 5433 lief.

Antworten:

26

Ihre Datenbank wurde mit doppelten Anführungszeichen erstellt, sodass bei ihrem Namen die Groß- und Kleinschreibung berücksichtigt wird. Daher müssen Sie jetzt immer doppelte Anführungszeichen verwenden, wenn Sie darauf verweisen:

drop database "Blog_test";

Weitere Informationen zu Bezeichnern in Anführungszeichen (ein Datenbankname ist ein Bezeichner wie ein Spalten- oder Tabellenname) finden Sie im Handbuch:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html # SQL-SYNTAX-IDENTIFIERS

ein Pferd ohne Name
quelle
1
Meine Faustregel lautet immer Kleinbuchstaben :( Ich hatte das gleiche Problem.
Chris Hough