Je travaille avec une nouvelle installation de postgresql, avec un super utilisateur «postgres». Connecté via:
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
Aucune erreur, mais la table n'est pas en cours de création. Des idées?
postgresql
psql
Damien Roche
la source
la source
Réponses:
createdb
est un utilitaire de ligne de commande que vous pouvez exécuter depuis bash et non depuis psql. Pour créer une base de données à partir de psql , utilisez l'create database
instruction comme suit:Remarque: veillez à toujours terminer vos instructions SQL par
;
la source
;
En retard à la fête, mais la réponse acceptée n'explique pas pourquoi aucune erreur ne s'affiche. Et comme c'est quelque chose sur lequel les nouveaux arrivants de Postgres tombent souvent, je voulais ajouter cela.
TL / TR: terminez toujours vos instructions SQL par
;
Parce que le
createdb database
ne se termine pas par;
psql
pense que l'instruction n'est pas terminée et attend plus d'entrée. Ceci est indiqué par l'invite passant depostgres=#
àpostgres-#
. Un changement extrêmement subtil que je souhaitepsql
faire différemment (plus "proéminent").En entrant la méta-commande,
\list
l'instruction SQL "courante" est "abandonnée" sans l'exécuter.Si le
createdb
avait été terminé par un,;
la sortie aurait été:Montrer clairement que quelque chose n'allait pas.
la source
createdb
n'est pas valide. Mais répéter exactement la même commande aveccreate database
au lieu decreatedb
avec un point-virgule fonctionne parfaitement.J'étais dans cette situation il n'y a pas longtemps. Au cas où quelqu'un d'autre éprouverait cela, étant donné que l'invite de commande montre que
postgres-#
vous pouvez exécuter la commande createdb en attente en tapant simplement;
et la touche de retour.la source
Créer une nouvelle base de données dans PostgreSQL est très simple, exécutez cette commande sous Linux (exemple CentOS 7):
la source
En utilisant un terminal de nœud, j'ai dû exécuter:
[tapez votre mot de passe]
puis ...
Ce qui est déroutant, c'est que j'ai entré ces mêmes commandes auparavant et que cela n'a pas fonctionné. Ce n'est qu'après m'être déconnecté et reconnecté que j'ai pu utiliser cette commande standard de la documentation: https://www.postgresql.org/docs/10/tutorial-createdb.html
la source