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的=>
清楚地表明出了什么问题。