MSSQL 到 MYSQL - 从 MSSQL 中选择,插入 MySQL
Posted
技术标签:
【中文标题】MSSQL 到 MYSQL - 从 MSSQL 中选择,插入 MySQL【英文标题】:MSSQL to MYSQL - Select from MSSQL , Insert into MySQL 【发布时间】:2018-03-19 09:48:53 【问题描述】:我试图建立一个从特定查询记录集从 MSSQL (express 2008) 到 mysql 的单向同步。这是那个查询。
SELECT [datafk]
,[datahistorypk]
,[date]
,[displayText]
FROM [FCentral].[dbo].[DataHistory]
WHERE [sampleNr] =
(SELECT MAX (sampleNr) FROM [FCentral].[dbo].[DataHistory])
这会产生多个结果。我需要将这些结果中的每一个插入到我的“链接服务器”远程连接的 MySQL 数据库表中。
此代码适用于 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 的正确语法。任何人都可以指出一个很好的例子或帮助我解决这个问题吗?
【问题讨论】:
【参考方案1】:在 SQL Server 中设置 linked 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]);
【讨论】:
无效的对象名称“BPF_REMOTE.farms.CCData”。我需要做一些特殊的事情来将 LinkedServer DB 设置为对象吗? @TrippWilliamson 。 . .是的。按照链接中的说明进行操作。 我遵循了另一组说明并使用 SSMS 来设置链接,我真的看不出 sp_addlinkedserver 与 SSMS 的工作方式有何不同。 ----我或多或少这样做了“您也可以使用 SQL Server Management Studio 定义链接服务器。在对象资源管理器中,右键单击服务器对象,选择新建,然后选择链接服务器。” ----- 这个是我跟随的指南。 mssqltips.com/sqlservertip/4570/… 我相信我需要将您的查询转换为使用 openquery 来完成这项工作。以上是关于MSSQL 到 MYSQL - 从 MSSQL 中选择,插入 MySQL的主要内容,如果未能解决你的问题,请参考以下文章
从 MSSQL 迁移到 MYSQL 错误 1064 MYSQL Workbench
使用 Workbench 从 MSSQL 迁移到 MySQL 时未从源中检索模式列表