如何在顶级登录postgreSQL?

如何在顶级登录postgreSQL?,postgresql,psql,Postgresql,Psql,我在mac os上安装了Postgres 9.6。当我输入命令时: $psql(我需要到下面的提示) 酒吧=# bar=#\conninfo 您通过端口“5432”处“/tmp”中的套接字以用户“bar”的身份连接到数据库“bar”。 我如何离开数据库栏并处于顶层,以便在输入命令时: CREATE DATABASE postgis_in_action; CREATE SCHEMA ch07; CREATE TABLE ch07.bag_o_rasters(rid serial primary

我在mac os上安装了Postgres 9.6。当我输入命令时:

$psql(我需要到下面的提示)
酒吧=#
bar=#\conninfo
您通过端口“5432”处“/tmp”中的套接字以用户“bar”的身份连接到数据库“bar”。
我如何离开数据库栏并处于顶层,以便在输入命令时:

CREATE DATABASE postgis_in_action;
CREATE SCHEMA ch07;
CREATE TABLE ch07.bag_o_rasters(rid serial primary key, rast_name text, rast raster);

将创建数据库postgis\u in\u action,并在此数据库中创建ch07模式,而不是嵌套在数据库“bar”中,并且将在postgis\u in\u action数据库下的ch07模式中创建表?

也许您有使用其他数据库的经验,但这是Postgres。模式嵌套在数据库中,您无法连接到模式(在Postgres中)。如果要创建数据库,则使用
createdatabasech07
代替
createschemach06

Instance (Postgres Cluster)
        |
        v
 -------------------- ...
 |            |
 v            v
Database1   Database2
 |
 ----------------------- ...
 |         |       |  
 v         v       v
public   schema1   schema2
 |
 ----------------------- ...
 |          |          |
 v          v          v
table1     table2     table3
在本例中,Postgres与MS SQL相似,与Oracle非常不同。Postgres和Oracle中的模式是不同的


连接到Postgres时,必须指定目标数据库。不能仅连接到服务器,也不能连接到架构。模式(在Postgres中)类似于目录。您可以指定模式的搜索顺序。您可以为每个连接、每个用户或在会话中设置
SEARCH\u PATH
(这类似于MS Win或UNIX中的
PATH

也许您有使用其他数据库的经验,但这是Postgres。模式嵌套在数据库中,您无法连接到模式(在Postgres中)。如果要创建数据库,则使用
createdatabasech07
代替
createschemach06

Instance (Postgres Cluster)
        |
        v
 -------------------- ...
 |            |
 v            v
Database1   Database2
 |
 ----------------------- ...
 |         |       |  
 v         v       v
public   schema1   schema2
 |
 ----------------------- ...
 |          |          |
 v          v          v
table1     table2     table3
在本例中,Postgres与MS SQL相似,与Oracle非常不同。Postgres和Oracle中的模式是不同的


连接到Postgres时,必须指定目标数据库。不能仅连接到服务器,也不能连接到架构。模式(在Postgres中)类似于目录。您可以指定模式的搜索顺序。您可以为每个连接、每个用户或在会话中设置
SEARCH\u PATH
(类似于MS Win或UNIX中的
PATH

创建新数据库后,您需要切换到它。否则,
create schema
将在您最初连接的数据库中运行。在
psql
中,您可以使用
\connect

bar=#创建数据库postgis_动作;
bar=#\connect postgis_in_action
您现在以用户“postgres”的身份连接到数据库“postgis\u in\u action”。
创建模式ch07;
创建表格ch07.bag_o_光栅(rid串行主键、光栅名称文本、光栅);
我强烈建议您创建一个常规用户来完成您的工作。不要以超级用户的身份做任何事。例如:

bar=# create user ace password '*******';
bar=# create CREATE DATABASE postgis_in_action owner ace;
\connect postgis_in_action ace
Password for user ace:
You are now connected to database "postgis_in_action" as user "ace".
postgis_in_action=> 

创建新数据库后,需要切换到该数据库。否则,
create schema
将在您最初连接的数据库中运行。在
psql
中,您可以使用
\connect

bar=#创建数据库postgis_动作;
bar=#\connect postgis_in_action
您现在以用户“postgres”的身份连接到数据库“postgis\u in\u action”。
创建模式ch07;
创建表格ch07.bag_o_光栅(rid串行主键、光栅名称文本、光栅);
我强烈建议您创建一个常规用户来完成您的工作。不要以超级用户的身份做任何事。例如:

bar=# create user ace password '*******';
bar=# create CREATE DATABASE postgis_in_action owner ace;
\connect postgis_in_action ace
Password for user ace:
You are now connected to database "postgis_in_action" as user "ace".
postgis_in_action=> 

您想在数据库
bar
中创建模式,还是想创建名为
ch07
的数据库模式与数据库不同。
psql-h myhost-d mydb-U myuser
这是您可以登录特定数据库的postgresql的方式。请用您的数据库名ch07回复mydb。很抱歉造成混淆。我通过添加行CREATE DATABASE postgis_in_action编辑了这个问题;您想在数据库
bar
中创建模式,还是想创建名为
ch07
的数据库模式与数据库不同。
psql-h myhost-d mydb-U myuser
这是您可以登录特定数据库的postgresql的方式。请用您的数据库名ch07回复mydb。很抱歉造成混淆。我通过添加行CREATE DATABASE postgis_in_action编辑了这个问题;模式在Oracle和PostgreSQL中是相同的。不同之处在于,只能使用
CREATE USER
创建模式,并且所有权与名称绑定。模式在Oracle和PostgreSQL中是相同的。不同之处在于,只能使用
CREATE USER
创建模式,并且所有权与名称绑定。