PostgreSQL: 如何通过命令行在数据库中创建表格

43
我正在尝试在Postgres中创建一张表格,但它最终出现在了错误的数据库中。
以下是我的操作步骤:在我的SQL脚本中,我首先创建了一个用户和一个数据库,然后再创建一张表格。代码将进一步解释:
drop database if exists sinfonifry;
drop role if exists sinfonifry;

-- create the requested sinfonifry user

create user sinfonifry createdb createuser password 'some_password';

-- create a sinfonifry database
create database sinfonifry owner sinfonifry;

DROP TABLE if exists sinf01_host;

CREATE TABLE sinf01_host
(
  host_id bigserial NOT NULL, -- The primary key
  host_ip inet NOT NULL, -- The IP of the host
  host_name character varying(255) NOT NULL, -- The name of the host
  CONSTRAINT "PK_host" PRIMARY KEY (host_id )
)
WITH (
  OIDS=FALSE
);

ALTER TABLE sinf01_host OWNER TO sinfonifry;

现在,这是一个自动化脚本的一部分,并且是从命令行执行的,例如:
sudo -u postgres psql < create_db.sql

我已经在系统上创建了postgres用户。

问题来了:表最终出现在postgres数据库的public模式中,而不是sinfonifry数据库的public模式中。

我该如何在想要的数据库中创建表?

谢谢,f.


在创建任何对象之前,请连接到新创建的数据库。 - wildplasser
1个回答

63

在执行创建数据库命令后,发出连接命令:

create database sinfonifry owner sinfonifry;
\connect sinfonifry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接