2015-07-21 147 views
0

我在兩個不同的物理服務器上有兩個數據庫。此時,我想在database1中的某些表與database2中的某些表之間建立關係。無論如何,我想知道是否有這樣做? 注意我的兩臺服務器上都有mysql和oracle數據庫,我可以使用它們。是否有可能通過mysql或oracle與物理數據庫建立連接?在不同的物理數據庫之間建立關係

+0

在oracle中,你可以使用一個數據庫鏈接也知道作爲DB_LINK做到這一點:http://docs.oracle.com/cd/B28359_01/server.111 /b28324/tdpii_distdbs.htm和在mysql上你可以這樣做:http://stackoverflow.com/a/1566137/460557但是請注意,你只能執行SQL操作,你不能在此之間創建預先約束。 –

+0

在oracle中,你甚至可以創建一個數據庫鏈接到另一個數據庫引擎,如mysql。我不知道是否可以通過其他方式使用mysql。 –

+0

@JorgeCampos感謝您的回覆。但我想創建外鍵約束。還有嗎? – hamed

回答

1

Hamed,看看這個。

在oracle中,基於視圖可以有一個外鍵約束。因此請按照下列步驟操作:

首先:爲遠程數據庫上的表創建視圖。例如:

create view test_view_dblink as 
select * from [email protected]_dblink; 

秒:在視圖上創建一個外鍵約束。例如:

alter view test_view_dblink 
add constraint test_view_dblink_fk foreign key (column_name) 
references table_view_in_your_database(column_name) disable; 

約束定義中的「禁用」是非常重要的。 在我的環境中,這個作品完美!

你也可以有一個主鍵:

alter view test_view_dblink 
add constraint test_view_dblink_pk primary key (column_name) disable; 
相關問題