2017-04-14 41 views
1

我使用oracle作爲我的數據庫。從模式或數據庫複製表

我對模式和數據庫之間的概念感到困惑。我環顧四周,找不到任何明確的定義示例。

假設我們有QA,DEV和生產環境,並假設我有三個QA環境。在三個QA環境之間,他們通常會有不同的數據庫還是不同的架構?

假設這三個不同的QA環境在每個環境中都有不同的數據。假設我想創建一個新的第四個QA環境,並希望從現有的QA環境之一(讓​​我們稱這個環境爲QA_1)複製一個表(可以稱爲foo)到新的QA環境(讓我們稱之爲QA_NEW) 。我會複製schemafoofooQA_1QA_NEW或將我複製database表從QA_1QA_NEW

+0

'database.schema.table @ DBLINK'如果你在不同的環境之間建立鏈接(假設不同的服務器)所以如果我想從Dev複製到QI可以(假設我登錄到Q)'Create table foo as選擇* from [email protected])'通常你不需要指定數據庫,所以'Create table foo as(Select * from [email protected])'會在結構中創建Q表中的表foo,並且數據在dev。 – xQbert

回答

0

數據庫是物理的(數據文件,塊等)。 模式是數據庫中邏輯存儲對象(表,mviews等)的用戶名(所有者)

就你而言,你有3個QA數據庫(QA_1,QA_2,QA_N),每個數據庫都有自己的模式 - 可能有相同的模式名稱(用戶名)。你會複製database.schema.table到另一個database.schema.table

QA_1.myschema.foo - > QA_2.myschema.foo

你會說「富表家住QA_1數據庫並由'myschema'模式所有。「

0

您將需要將整個數據庫複製到新環境中,以便所有環境匹配。

模式類似於命名空間。一個數據庫可以有多個名稱空間,你可能想要複製所有的名字空間。