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 каждый пользователь в одной базе данных имеет одинаковый набор таблиц, разница была только в ролях, как насчет Оракул?

спасибо

2 ответов


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

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


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

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

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

внутри схемы все немного сложнее.

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