2012-11-03 5 views
0

Possible en double:
In psql, why do some commands have no effect?psql ne semble pas fonctionner

Je viens d'installer le serveur Postgres et je suis en cours d'exécution dans un problème en utilisant psql. Chaque fois que je suis dans le shell psql, aucune des commandes n'a d'effet. Par exemple:

postgres=# create database testing 
postgres=# create user foo 

Je crois comprendre que je devrais voir quelque chose comme ceci:

postgres=# create database testing 
CREATE DATABASE 
postgres=# create user foo 
CREATE ROLE 

La chose étrange est que je peux utiliser le shell de commandes pour rendre la base de données et les rôles. J'ai installé postgres de ppa:pitti/postgresql sur une installation de vanille d'Ubuntu 10.04 (selon railscast # 335).

J'ai passé pas mal de temps sur google pour essayer de comprendre quel est mon problème, mais je n'arrive pas à trouver de réponses.

Merci.

+0

Comment avez-vous appelé 'psql'? – titanofold

Répondre

2

Vous ne le voyez probablement pas car vous ne terminez pas la ligne avec un point-virgule (;). Vos exemples doivent être écrits comme:

postgres=# CREATE DATABASE testing; 
postgres=# CREATE ROLE foo; 
+0

Eh bien, je me sens bête maintenant ...: P Un peu surpris qu'il ne se plaignait pas cependant. – Clay

+1

@Clay Comment saurait-il se plaindre? Il est parfaitement valide (et utile) de fractionner des instructions SQL sur plusieurs lignes pour faciliter l'édition, la lisibilité, etc. –

1

Êtes-vous sûr que vos commandes sont terminées par le ;? Toutes les instructions issues de psql doivent être terminées by the semicolon, sauf si vous avez spécifié -S lors de l'appel de psql.

Une autre façon d'envoyer le tampon de requête pour l'exécution est d'émettre une méta-commande \g.