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
Как говорит зайчик, объекты в разных схемах имеют разные пространства имен.
каждый схемы в базе данных имеет свои собственные пространства имен для объектов, которые она содержит. Это означает, например, что две таблицы в разных схемах находятся в разных пространствах имен и имеют одинаковую имя.
внутри схемы все немного сложнее.
поскольку таблицы и представления находятся в одном пространстве имен, таблица и представление в одной схеме не могут иметь одно и то же имя. Однако таблицы и индексы находятся в разных пространствах имен. Поэтому таблица и индекс в одной схеме могут иметь одно и то же имя.