0

我需要连接来自 2 个不同服务器的 2 个表。

我怎么能在 C# 中做到这一点?

这是我到目前为止所拥有的:

cmd = new MySqlCommand(String.Format("INSERT INTO {0} (a,b,c,d) SELECT (a,b,c,d) FROM {1}", ConfigSettings.ReadSetting("main_table"), ConfigSettings.ReadSetting("main_table")), con);

ConfigSettings.ReadSetting("main_table")因为他们两个是一样的。

 con.ConnectionString = ConfigurationManager.ConnectionStrings["con1"].ConnectionString;
 con2.ConnectionString = ConfigurationManager.ConnectionStrings["con2"].ConnectionString

如何使此 cmd 与 2 个不同的连接字符串和表的相同名称一起工作。表名会改变,这就是它保存在配置中的原因。

4

1 回答 1

1

MySQL无法动态链接服务器。

如果要在数据库之间直接复制,则需要FEDERATED在目标服务器上创建一个指向源服务器的表,然后发出以下命令:

INSERT
INTO    main_table (a, b, c, d)
SELECT  a, b, c, d
FROM    federated_main_table

在目标服务器上。

如果您有多个源服务器和/或表,您应该为它们中的每一个创建一个联合表。

另一种选择是将源服务器中的所有数据选择到客户端(放入数组、持久记录集等),然后将缓存在客户端上的数据插入目标服务器上的表中。

于 2012-06-02T21:24:12.840 回答