2012-11-03 64 views
0

可能重复:
In psql, why do some commands have no effect?PSQL似乎并不奏效

我刚刚安装了Postgres的服务器和我使用的psql运行到一个问题。无论何时我在psql shell中,这些命令都没有任何影响。例如:

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

这是我的理解,我应该看到这样的事情:

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

奇怪的是,我可以使用shell命令来使数据库和角色。我已经在Ubuntu 10.04的vanilla安装中安装了ppa:pitti/postgresql的postgres(根据railscast#335)。

我已经花了相当多的时间在谷歌试图找出我的问题是什么,但我似乎无法得到任何答案。

谢谢。

+0

你是怎么调用'psql'的? – titanofold

回答

2

您可能没有看到,因为您没有用分号(;)结束该行。你的例子应该写成:

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

嗯,我现在觉得很傻......:P有点惊讶,它没有抱怨。 – Clay

+1

@Clay它会如何知道抱怨?将SQL语句分成几行以实现简单的编辑,可读性等是完全有效的(并且非常有用)。 –

1

你确定你的命令是由;终止?除非您在调用psql时指定-S开关,否则从psql发出的所有声明应终止by the semicolon

发送查询缓冲区执行的另一种方法是发出\g元命令。