0
我在兩個不同的物理服務器上有兩個數據庫。此時,我想在database1中的某些表與database2中的某些表之間建立關係。無論如何,我想知道是否有這樣做? 注意我的兩臺服務器上都有mysql和oracle數據庫,我可以使用它們。是否有可能通過mysql或oracle與物理數據庫建立連接?在不同的物理數據庫之間建立關係
我在兩個不同的物理服務器上有兩個數據庫。此時,我想在database1中的某些表與database2中的某些表之間建立關係。無論如何,我想知道是否有這樣做? 注意我的兩臺服務器上都有mysql和oracle數據庫,我可以使用它們。是否有可能通過mysql或oracle與物理數據庫建立連接?在不同的物理數據庫之間建立關係
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;
在oracle中,你可以使用一個數據庫鏈接也知道作爲DB_LINK做到這一點:http://docs.oracle.com/cd/B28359_01/server.111 /b28324/tdpii_distdbs.htm和在mysql上你可以這樣做:http://stackoverflow.com/a/1566137/460557但是請注意,你只能執行SQL操作,你不能在此之間創建預先約束。 –
在oracle中,你甚至可以創建一個數據庫鏈接到另一個數據庫引擎,如mysql。我不知道是否可以通過其他方式使用mysql。 –
@JorgeCampos感謝您的回覆。但我想創建外鍵約束。還有嗎? – hamed