2012-11-03 95 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元命令。