2012-06-25 4 views

Antwort

18

Kataloge und Schemas sind "Namespaces", die Sie auf der Serverseite der Datenbank definieren. Einige Datenbanken enthalten Schemas, einige enthalten Kataloge und einige enthält beides. Bei der Anmeldung bei einem bestimmten Benutzer wird bei einigen Datenbanken das Schema/Katalog auf den Namespace des Benutzers zurückgesetzt, sodass die Tabelle für andere Benutzer nicht sichtbar ist. Daher muss ein "allgemeiner" Namespace verwendet werden. Abhängig von der Datenbank, die Sie zum Sichern Ihrer Daten verwenden, sollten Sie diese Einstellungen möglicherweise ignorieren.

Für MySQL möchten Sie diese Einstellungen möglicherweise ignorieren. Dies liegt daran, dass der "Datenbank" -Teil der JDBC-URL (der nach dem letzten Schrägstrich) auf den Datenbanknamen verweist, der semantisch mit dem Schema (für MySQL) identisch ist.

+4

Um das Bild zu vervollständigen: In MySQL werden Schemas nicht unterstützt und ein Katalog wird einer Datenbank zugeordnet. –

+0

@a_horse_with_no_name: Bist du sicher? Ich dachte, es wäre das Gegenteil. Wenn Sie einfach "Datenbank" in MySQL DDL-Befehlen durch "Schema" ersetzen, sollte es einfach funktionieren. – jpkrohling

+2

Ich bin sicher, ja. Zumindest sagt das der JDBC-Treiber. 'DatabaseMetaData.getCatalogTerm()' gibt "Database" zurück und 'DatabaseMetaData.getSchemaTerm()' gibt null zurück. Die verschiedenen 'supportsSchemaInXXX()' Methoden geben alle false zurück und die 'supportsCatalogInXXX()' alle geben true zurück. –

Verwandte Themen