Ich arbeite mit einer neuen postgresql-Installation mit dem Superuser 'postgres'. Eingeloggt über:
sudo -u postgres psql
postgres=# createdb database
postgres-# \list
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
template0 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
Keine Fehler, es wird jedoch keine Tabelle erstellt. Irgendwelche Ideen?
postgresql
psql
Damien Roche
quelle
quelle
Antworten:
createdb
ist ein Befehlszeilenprogramm, das Sie von bash und nicht von psql ausführen können . Verwenden Sie die folgende Anweisung, um eine Datenbank aus psql zu erstellencreate database
:Hinweis: Beenden Sie Ihre SQL-Anweisungen immer mit
;
quelle
;
Spät zur Party, aber die akzeptierte Antwort erklärt nicht, warum kein Fehler angezeigt wird. Und da dies etwas ist, worüber Postgres-Neulinge oft stolpern, wollte ich das hinzufügen.
TL / TR: Beenden Sie Ihre SQL-Anweisungen immer mit
;
Weil das
createdb database
nicht mit dem;
psql
Gedanken endete, dass die Anweisung noch nicht fertig ist und auf weitere Eingaben wartet. Dies wird durch die Eingabeaufforderung angezeigt, die vonpostgres=#
nach wechseltpostgres-#
. Eine äußerst subtile Veränderung, die ich mir wünschepsql
anders würde ("prominenter").Durch Eingabe des Meta-Befehls
\list
die "aktuelle" SQL-Anweisung "abgebrochen", ohne sie auszuführen.Wenn das
createdb
mit einem beendet worden wäre;
wäre, wäre die Ausgabe gewesen:Deutlich zeigen, dass etwas nicht stimmte.
quelle
createdb
nicht gültig ist. Aber dann funktioniert es perfekt, genau denselben Befehl mitcreate database
stattcreatedb
mit einem Semikolon zu wiederholen .Ich war vor nicht allzu langer Zeit in dieser Situation. Falls dies bei einer anderen Person
postgres-#
auftritt, können Sie den ausstehenden Befehl createb ausführen, indem Sie einfach die Eingabetaste eingeben;
.quelle
Das Erstellen einer neuen Datenbank in PostgreSQL ist sehr einfach. Führen Sie diesen Befehl unter Linux aus (CentOS 7-Beispiel):
quelle
Mit einem Knotenterminal musste ich Folgendes ausführen:
[Passwort eingeben]
dann ...
Was verwirrend ist, ist, dass ich dieselben Befehle zuvor eingegeben habe und es nicht funktioniert hat. Erst nach dem Abmelden und erneuten Anmelden konnte ich diesen Standardbefehl aus der Dokumentation verwenden: https://www.postgresql.org/docs/10/tutorial-createdb.html
quelle