Postgresql没有创build与“createdb”作为超级用户的数据库,但不输出错误

我正在使用'postgres'超级用户进行新鲜的postgresql安装。 login:

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 

没有错误,但表没有被创build。 有任何想法吗?

createdb是一个命令行工具,你可以从bash运行而不是从psql运行。 要从psql create database ,请使用create database语句,如下所示:

 create database [databasename]; 

注意:一定要始终用你的SQL语句结束;

晚会,但接受的答案并不能解释为什么没有显示错误。 由于这是Postgres新手经常遇到的问题,我想补充一点。


TL / TR:总是用你的SQL语句结束;


因为createdb database没有结束; psql认为语句没有完成,等待更多的input。 这通过从postgres=#postgres-#的提示符来指示。 一个非常微妙的变化,我希望psql会做不同(更“突出”)。

通过inputmeta-command \list ,“当前”SQL语句被“中止”而不执行它。

如果被createdb已经以a ; 输出将是:

  postgres => createdb foobar;
错误:在“createdb”处或附近的语法错误
第1行:createdb foobar;
         ^
 postgres的=> 

清楚地表明出了什么问题。