【问题标题】:Postgres Creating Schema in a specific databasePostgres 在特定数据库中创建模式
【发布时间】:2012-08-10 13:45:53
【问题描述】:

我收到了一份来自 stackoverflow.com 的建议,用于在特定数据库中创建架构,如下所示:

CREATE DATABASE foo; 
 \connect foo; 
CREATE SCHEMA yourschema; 

但我收到如下错误:

错误:“\”处或附近的语法错误 LINE 2: \connect foo; ^

***错误***

错误:“\”处或附近的语法错误

情况:

以 postgress 身份登录
创建用户 u1
使用所有者 u1 创建数据库 db1
\连接 u1
创建架构 s1

请帮助我在特定数据库中创建架构。

【问题讨论】:

  • 您是如何尝试连接到数据库的?你是用psql 命令行工具做的吗?

标签: sql postgresql schema


【解决方案1】:

这有效,如果 - 且仅当 - 你正在使用 psql:

postgres@berry-pc:~$ psql template1
psql (8.4.10)
Type "help" for help.

template1=# CREATE DATABASE foo;
CREATE DATABASE
template1=# \connect foo;
psql (8.4.10)
You are now connected to database "foo".
foo=# \connect template1
psql (8.4.10)
You are now connected to database "template1".
template1=# DROP DATABASE foo;
DROP DATABASE
template1=# \q

\connect 是一个 psql 命令。这不是普通的 SQL,因此您不能在 .sql 文件中使用它。据我所知,无法从 sql 文件中执行此操作。这背后的基本原理是,一旦您想使用不同的数据库,就应该重新连接到不同的数据库。这是为了数据库分离。 MySQL 实现use $database 语法的原因是因为它缺少架构,但 PostgreSQL 没有这样的命令,因为数据库应该以架构而不是数据库分隔。

【讨论】:

    猜你喜欢
    • 2011-09-24
    • 2014-03-25
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多