2009-11-06 10 views
6

Ist es möglich, denselben Tabellennamen in einem anderen Schema mit unterschiedlichen Daten in den Tabellen innerhalb der einen Datenbank zu haben? Ich denke, anstatt mehrere Datenbanken zu erstellen (die den gleichen Tabellennamen enthalten), sollte ich stattdessen mehrere Schemata erstellen.Oracle gleichen Tabellennamen auf anderen Schema?

Etwas wie:

 
Schema 1: 
    table A, table B 
Schema 2: 
    table B, table X 

PS: table B hold different data for each schema 

und grundlegendste Frage hielt jedes Schema (Benutzer) Set verschiedene Tabelle? In SQL Server und MySQL hat jeder Benutzer in derselben Datenbank denselben Tabellensatz, der Unterschied besteht nur in den Rollen. Wie steht es mit Oracle?

Danke

Antwort

8

Ja, das ist möglich. Ein Schema in Oracle ist, was ein MySQL-Benutzer eine Datenbank nennen würde.

Sie müssen jedoch beim Zugriff auf eine der Tabellen jetzt vorsichtig sein, wenn der Benutzer, mit dem Sie eine Verbindung zur Datenbankinstanz herstellen, Zugriff auf beide Tabellen hat. Um eine Tabelle in einem bestimmten Schema eindeutig zu referenzieren, verwenden Sie schema.table.

+0

ok danke, muss der Tablespace (Standard & temporär) für jedes Schema in einer anderen Datei sein? – Dels

+0

Kein Problem, dem Benutzer den gleichen Standard- und temporären Tabellenbereich zu geben –

6

Hier ist die Dokumentation auf Namespaces: http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/sql_elements008.htm#i27561

Wie hase sagt Objekte in verschiedenen Schemata verschiedene Namensräume haben.

Jedes Schema in der Datenbank hat eigene Namespaces für die darin enthaltenen Objekte. Dies bedeutet beispielsweise, dass zwei Tabellen in verschiedenen Schemas in verschiedenen Namespaces liegen und denselben Namen haben können.

Innerhalb eines Schemas sind die Dinge etwas komplexer.

Da sich Tabellen und Sichten im selben Namespace befinden, dürfen eine Tabelle und eine Sicht im selben Schema nicht den gleichen Namen haben. Tabellen und Indizes befinden sich jedoch in unterschiedlichen Namespaces. Daher können eine Tabelle und ein Index im selben Schema denselben Namen haben.

Verwandte Themen