mysql - MSSQL 到 MYSQL - 从 MSSQL 中选择,插入 MySQL

标签 mysql sql sql-server sql-server-2008

我正在尝试建立从 MSSQL (express 2008) 到 Mysql 的特定查询记录集的单向同步。这是该查询。

SELECT [datafk]
  ,[datahistorypk]
  ,[date]
  ,[displayText]
FROM [FCentral].[dbo].[DataHistory]

WHERE [sampleNr] = 
    (SELECT MAX (sampleNr) FROM [FCentral].[dbo].[DataHistory])

这会产生多个结果。我需要将每个结果插入到我的“链接服务器”远程连接的 MySQL DB 表中。

此代码在 SSMS 中工作并插入到我的 MySQL 数据库中。

EXEC (' INSERT INTO  `farms`.`CCData` (
       `datafk` ,`datahistorypk` ,`date` ,`displayText` )
      VALUES ("222",  "13",  "2017-10-19 14:25:05",  "TEST"); ')
at BPF_REMOTE

最终我需要安排这个查询自动运行,如果在 MSSQL 表中检测到更改时它可以运行,那就太好了,但这可能超出了我的能力范围。

我觉得我已经很接近了,我只是在努力寻找正确的语法来从 MSSQL 转换为 MySQL。任何人都可以指出一个很好的例子或帮助我解决这个查询吗?

最佳答案

设置linked server在 SQL Server 中,只需执行常规插入即可:

INSERT INTO BPF_REMOTE.farms.CCData(datafk, datahistorypk, date, displayText)
    SELECT [datafk], [datahistorypk], [date], [displayText]
    FROM [FCentral].[dbo].[DataHistory]
    WHERE [sampleNr] = (SELECT MAX (sampleNr) FROM [FCentral].[dbo].[DataHistory]);

关于mysql - MSSQL 到 MYSQL - 从 MSSQL 中选择,插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46625201/

相关文章:

MySQL:当特定类型的记录不在另一个表中时如何连接

mysql - 基于 mysql 查询中最近日期的每组最大 N

sql - 对相同日期和 ID 的列中的值求和

c# - 这是防止在我的站点的讨论模块中输入错误词的最佳方法

SQL SELECT 每 X 行增量批处理号

mysql - 根据情况使用不同的MySQL数据库

MySQL将具有相同ID的多行合并为一行

SQL连接同一个表的列

sql - PostgreSQL 创建引用不存在表的函数

java - 如何使用java检查mysql中的特定数据库是否已经存在