c# - 如何使用链接服务器连接两个表

标签 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 个不同的连接字符串并具有相同的表名称。表名会改变,这就是它保存在配置中的原因。

最佳答案

MySQL 无法动态链接服务器。

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

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

在目标服务器上。

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

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

关于c# - 如何使用链接服务器连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10866013/

相关文章:

c# - 如何检查存储过程中是否插入了数据

c# - HttpwebRequest - 来自 HRESULT : 0x800710DD 的异常

php - Varchar 类型的 MySql 复合唯一索引

php ORM - 生产中的RedBean?

mysql - 如何在 MySql 中测试时间相等性

c# - 带有 "infinite scrolling"页面的 httpwebrequest?

mysql - MySql 的消费者-生产者模式

mysql - 如果我在 mysql (LINUX) 中删除 ibdata1 会怎样

mysql - 将一个表中的两个不同主键链接到第二个表中

c# - 无法与 wss ://echo. websocket.org/with UnitySocketIO 握手