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?

Спасибо


person Dels    schedule 06.11.2009    source источник


Ответы (2)


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

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

person jackrabbit    schedule 06.11.2009
comment
хорошо, спасибо, табличное пространство (по умолчанию и временное) для каждой схемы должно быть в другом файле? - person Dels; 06.11.2009
comment
вообще нет проблем, чтобы предоставить пользователю одно и то же табличное пространство по умолчанию и временное пространство - person Rob van Laarhoven; 06.11.2009

Вот документация по пространствам имен: https://docs.oracle.com/en/database/oracle/oracle-database/20/sqlrf/Database-Object-Names-and-Qualifiers.html#GUID-3C59E44A-5140-4BCA-B9E1-3039C8050C49

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

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

В схеме все немного сложнее.

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

person David Aldridge    schedule 06.11.2009