【问题标题】:Copying tables from schema or database从架构或数据库复制表
【发布时间】:2017-04-14 15:35:50
【问题描述】:

我使用 oracle 作为我的数据库。

我对架构和数据库之间的概念感到困惑。我环顾四周,找不到任何明确定义的示例。

假设我们有一个 QA、DEV 和生产环境,并假设我有三个 QA 环境。在这三个 QA 环境之间,它们通常会有不同的数据库或不同的架构吗?

假设这三个不同的 QA 环境在每个环境中都有不同的数据。并假设我想创建一个新的第四个 QA 环境并希望将一个表(让我们称之为这个表 foo)从一个已经存在的 QA 环境(让我们称之为这个环境QA_1)复制到新的 QA 环境(让称之为QA_NEW)。我是将schemafooQA_1 复制到QA_NEW,还是将database 表从QA_1 复制到QA_NEW

【问题讨论】:

  • database.schema.table@DBLINK 如果你在不同的环境之间设置了链接(假设不同的服务器)所以如果我想从 Dev 复制到 Q 我可以(假设我登录到 Q)Create table foo as (Select * from Database.Schema.Foo@Dev) 通常你不会但是不需要指定数据库,所以Create table foo as (Select * from Schema.Foo@Dev) 会根据 dev 中的结构和数据在 Q 中创建表 foo。

标签: sql oracle


【解决方案1】:

您需要将整个数据库复制到新环境中,以便所有环境都匹配。

架构类似于命名空间。一个数据库可以有多个命名空间,您可能希望全部复制。

【讨论】:

    【解决方案2】:

    数据库是物理的(数据文件、块等)。 架构是数据库中逻辑存储对象(表、mview 等)的用户名(所有者)

    在您的情况下,您有 3 个 QA 数据库(QA_1、QA_2 .. QA_N),每个数据库都有自己的架构 - 可能具有相同的架构名称(用户名)。您会将 database.schema.table 复制到另一个 database.schema.table

    QA_1.myschema.foo -> QA_2.myschema.foo

    您会说“Foo 表位于 QA_1 数据库中,并归 'myschema' 架构所有。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-05
      • 2020-05-29
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多