【问题标题】:PostgreSQL: Create schema in specific databasePostgreSQL:在特定数据库中创建模式
【发布时间】:2011-09-24 09:29:30
【问题描述】:

我需要编写一个 sql 脚本,在我刚刚创建的数据库中创建一个新数据库一个新架构。 p>

我该怎么做?我可以以某种方式将当前数据库更改为新数据库吗?或者我可以以某种方式为 CREATE SCHEMA 指定数据库吗?

我使用的是 PostgreSQL 9.0

【问题讨论】:

    标签: sql database schema postgresql


    【解决方案1】:

    您可以连接到数据库,并执行“CREATE SCHEMA”语句。这应该会在该数据库中产生一个新模式。它并不像你想象的那么难;) 当你想从一个 .SQL 文件中执行此操作时,你可以使用 \connect 命令:

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

    【讨论】:

    • 我知道。但是如何在与使用 CREATE DATABASE 创建数据库的 SQL 文件相同的 SQL 文件中执行此操作?
    • @Axel:你连接到数据库。不知道怎么样?简单地做一个pg_dumpall 并阅读它是如何做到的。或使用 \connect。随便哪一个。
    • @Seth Robertson 您能否在答案中提供一个示例以便我接受?
    • 请记住,\connect 是特定于 psql 的命令。尝试在另一个客户端(例如 pgAdmin3)中执行包含此类命令的 SQL 脚本将不起作用。
    • OP 在我的评论后添加了psql 标签。
    【解决方案2】:

    使用新用户登录新数据库:

    postgres=> \connect newdb user1
    ...
    You are now connected to database "newdb" as user "user1".
    newdb=> 
    

    在 newdb 中使用新用户“user1”创建架构:

    newdb=> CREATE SCHEMA s1;
    

    列出架构:

    SELECT * from information_schema.schemata;
    

    【讨论】:

      猜你喜欢
      • 2012-08-10
      • 2019-10-11
      • 1970-01-01
      • 2013-04-13
      • 2022-01-24
      • 2010-10-22
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多