2009-11-06 2 views
6

Возможно ли иметь одно и то же имя таблицы в другой схеме с разными данными в таблицах в одной базе данных? Я думаю, вместо того, чтобы создавать несколько баз данных (которые содержат одно и то же имя таблицы), я должен создать несколько схем.Oracle такое же имя таблицы в разных схемах?

Что-то вроде:

 
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?

Thanks

ответ

8

Да, это возможно. Схема в Oracle - это то, что пользователь MySQL будет вызывать в базе данных.

Однако при обращении к любой из таблиц вы должны быть внимательны, если пользователь, с которым вы подключаетесь к экземпляру базы данных, имеет доступ к обоим. Чтобы однозначно ссылаться на таблицу в конкретной схеме, используйте schema.table.

+0

ok спасибо, нужно ли табличное пространство (по умолчанию и временное) для каждой схемы быть в другом файле? – Dels

+0

не проблема, чтобы дать пользователю одинаковое табличное пространство по умолчанию и temp –

6

Вот документация на пространствах имен: http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/sql_elements008.htm#i27561

Как говорит заяц объекты в разных схемах имеют разные пространства имен.

Каждая схема базы данных имеет свои собственные пространства имен для содержащихся в ней объектов. Это означает, например, что две таблицы в разных схемах находятся в разных пространствах имен и могут иметь одно и то же имя.

В рамках схемы вещи немного сложнее.

Поскольку таблицы и представления находятся в одном пространстве имен, таблица и вид в одной и той же схеме не могут иметь одно и то же имя. Однако таблицы и индексы находятся в разных пространствах имен. Поэтому таблица и индекс в одной и той же схеме могут иметь одно и то же имя.