Wie zu Drop/Create Datenbank name mit Großbuchstaben schreiben?
beispielsweise meine Postgresql
Datenbank name ist Ajp
kann ich nicht löschen/erstellen der db mit diesem Namen, ie. Ajp
meine Skripte für die Tropfen ist
cd /D D:\\Apps
cd RSTAR PGSQL DOTCONNECT
cd bin
cd Debug
cd PG
psql -U postgres -d postgres -c "DROP DATABASE Ajp "
während der Ausführung dieser bekam ich diese Fehlermeldung
D:\Apps\RSTAR PGSQL DOTCONNECT\bin\Debug\PG>psql -U postgres -d postgres -c "DR.
OP-DATENBANK Ajp"
FEHLER: Datenbank "ajp" existiert nicht
versuchte ich psql -U postgres -d postgres -c "DROP DATABASE 'Ajp' "
(db-name in Anführungszeichen eingeschlossen)
wieder Fehler
FEHLER: syntax-Fehler an oder in der Nähe von "'Ajp'"
ZEILE 1: DROP DATABASE 'Ajp'
wie dieses problem zu beheben ?? (bitte nicht kommentieren, dass change your dbname to lower-case
)
using : "PostgreSQL 9.2.4, compiled by Visual C++ build 1600, 32-bit"
die Lösung für dieses problem ist unter
- Sholud escape-Zeichen
\
-
psql -U postgres -d postgres -c "DROP DATABASE \"Ajp\";"
sehen die unter Kommentar
- Ich werde über Ihre Nutzung von mixed-case-Identifizierer: dies ist ein wirklich gutes Beispiel, warum solltest du Sie nicht benutzen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
SQL-Bezeichner, die die groß-und Kleinschreibung müssen in doppelte Anführungszeichen eingeschlossen werden:
Nicht sicher, ob Sie richtig konserviert unter Windows, wenn Sie passieren Sie durch die Kommandozeile obwohl.
Müssen Sie möglicherweise zu legen, die in ein SQL-script aus und übergeben den script-Namen, um psql.
Für details auf die gültigen Bezeichner finden Sie die Anleitung: http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
ERROR: database "ajp" does not exist
drop database ajp
oderdrop database "ajp"
aber nichtdrop database "Ajp"
(Hinweis: der Obere FallA
. Oder die andere alternative ist, dass die"
wurde irgendwie verschluckt von der Windows-Kommandozeile. Was passiert, wenn Sie geben Sie die Anweisung manuell an derpsql
Eingabeaufforderung (nicht übergabe durch-c
)DROP DATABASE "Ajp";
bitte siehe das"Ajp"
. Was bedeutet\l
geben Sie inpsql
(bitte fügen Sie die Ausgabe auf Ihre Frage, nicht, poste es als Kommentar)psql -U postgres -d postgres -c "DROP DATABASE \"Ajp\""