是否可以在不同的模式上使用相同的表名,并在一个数据库中的表上使用不同的数据?我认为,而不是创建多个数据库(具有相同的表名),我应该创建多个模式 .
就像是:
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 回答
是的,这是可能的 . Oracle中的模式是MySQL用户称之为数据库的模式 .
但是,如果与数据库实例连接的用户可以同时访问这两个表,则在访问任一表时需要小心 . 要明确引用特定模式中的表,请使用
schema.table
.这是关于名称空间的文档:http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/sql_elements008.htm#i27561
正如长耳大野兔所说,不同模式中的对象具有不同的名称空间 .
在一个模式中,事情有点复杂 .