2015-07-21 148 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; 
相关问题