2012-06-25 55 views

回答

18

目錄和模式是您在數據庫服務器端定義的「名稱空間」。一些數據庫包含模式,一些包含目錄,一些包含兩者。在使用特定用戶登錄時,某些數據庫會將架構/目錄默認爲用戶的名稱空間,導致該表對其他用戶不可見,從而導致需要使用「公用」名稱空間。因此,根據您用於備份數據的數據庫,您可能需要忽略這些設置。

對於MySQL,您可能需要忽略這些設置。這是因爲JDBC URL(最後一個斜槓後面的那個)的「數據庫」部分指向數據庫名稱,這在語義上與模式(用於MySQL)相同。

+4

只是爲了完成圖片:在MySQL架構不支持和目錄映射到數據庫。 –

+0

@a_horse_with_no_name:你確定?我認爲這是相反的。如果你只是用MySQL DDL命令中的「模式」替換「數據庫」,它應該可以工作。 – jpkrohling

+2

我確定是的。至少這就是JDBC驅動程序所說的。 'DatabaseMetaData.getCatalogTerm()'返回「Database」和'DatabaseMetaData.getSchemaTerm()'返回null。各種'supportsSchemaInXXX()'方法都返回false,'supportsCatalogInXXX()'返回true。 –