如何将两个表与链接服务器连接

时间:2012-06-02 21:16:40

标签: c# mysql database

我需要从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个不同的连接字符串并使用相同的名称进行处理。表名将改变这就是它保存在配置中的原因。

1 个答案:

答案 0 :(得分:1)

MySQL无法动态链接服务器。

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

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

在目标服务器上。

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

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