Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Oracle是否在不同架构上使用相同的表名?_Database_Oracle_Schema - Fatal编程技术网

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

Database Oracle是否在不同架构上使用相同的表名?,database,oracle,schema,Database,Oracle,Schema,在同一个数据库中,在不同的模式中有相同的表名,在不同的表上有不同的数据,这是可能的吗?我认为与其创建多个数据库(包含相同的表名),不如创建多个模式 比如: Schema 1: table A, table B Schema 2: table B, table X PS: table B hold different data for each schema 模式1: 表A、表B 模式2: 表B、表X PS:表B为每个模式保存不同的数据 最基本的问题是每个模式(用户)持有不同的表集吗?在

在同一个数据库中,在不同的模式中有相同的表名,在不同的表上有不同的数据,这是可能的吗?我认为与其创建多个数据库(包含相同的表名),不如创建多个模式

比如:

Schema 1: table A, table B Schema 2: table B, table X PS: table B hold different data for each schema 模式1: 表A、表B 模式2: 表B、表X PS:表B为每个模式保存不同的数据 最基本的问题是每个模式(用户)持有不同的表集吗?在SQL Server和MySQL中,同一数据库上的每个用户都有相同的表集,区别只是角色,Oracle呢


谢谢

是的,这是可能的。Oracle中的模式就是MySQL用户所说的数据库


但是,如果您连接到数据库实例的用户可以同时访问这两个表,那么现在访问这两个表时需要小心。要明确引用特定架构中的表,请使用
schema.table

以下是有关名称空间的文档:

正如jackrabbit所说,不同模式中的对象具有不同的名称空间

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

在模式中,事情稍微复杂一些

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


好的,谢谢,每个模式的表空间(默认和临时)需要在不同的文件中吗?给用户相同的默认和临时表空间完全没有问题