125

I am working with a fresh postgresql install, with 'postgres' super user. Logged in 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

No errors, yet table is not being created. Any ideas?

4

5 に答える 5

283

createdbpsql からではなくbashから実行できるコマンド ライン ユーティリティです。psqlからデータベースを作成するには、次のcreate databaseようなステートメントを使用します。

create database [databasename];

注: SQL ステートメントは常に次のように終了してください。;

于 2012-11-10T09:59:04.430 に答える
90

パーティーに遅れましたが、受け入れられた回答では、エラーが表示されない理由が説明されていません。そして、これはPostgresの初心者がよく遭遇するものなので、それを追加したかった.


TL/TR: SQL ステートメントは常に次で終了します。;


createdb databasedid not end with; psqlはステートメントが終了していないと判断し、さらに入力を待つためです。これは、プロンプトが からpostgres=#に変わることで示されますpostgres-#。私が望んでいる非常に微妙な変更psql(より「目立つ」)。

メタコマンドを入力\listすると、「現在の」SQL ステートメントは実行されずに「中止」されます。

createdbで終了した場合;、出力は次のようになります。

postgres=> createdb foobar;
エラー: 「createdb」またはその付近で構文エラーが発生しました
行 1: createdb foobar;
        ^
ポストグル=>

何かが間違っていることを明確に示しています。

于 2015-12-08T15:19:41.467 に答える