首页 文章

Oracle在不同架构上使用相同的表名?

提问于
浏览
6

是否可以在不同的模式上使用相同的表名,并在一个数据库中的表上使用不同的数据?我认为,而不是创建多个数据库(具有相同的表名),我应该创建多个模式 .

就像是:

Schema 1:
  table A, table B
Schema 2:
  table B, table X

PS: table B hold different data for each schema

而最基本的问题是每个架构(用户)都持有不同的表集吗?在SQL Server和MySQL中,同一个数据库中的每个用户都有相同的表集,区别仅在于角色,Oracle如何?

谢谢

2 回答

  • 8

    是的,这是可能的 . Oracle中的模式是MySQL用户称之为数据库的模式 .

    但是,如果与数据库实例连接的用户可以同时访问这两个表,则在访问任一表时需要小心 . 要明确引用特定模式中的表,请使用 schema.table .

  • 6

    这是关于名称空间的文档:http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/sql_elements008.htm#i27561

    正如长耳大野兔所说,不同模式中的对象具有不同的名称空间 .

    数据库中的每个模式都有自己的名称空间,用于包含的对象 . 这意味着,例如,不同模式中的两个表位于不同的名称空间中,并且可以具有相同的名称 .

    在一个模式中,事情有点复杂 .

    由于表和视图位于同一名称空间中,因此同一模式中的表和视图不能具有相同的名称 . 但是,表和索引位于不同的名称空间中 . 因此,同一模式中的表和索引可以具有相同的名称 .

相关问题