使用SSIS从MySql删除记录

时间:2018-09-10 22:32:17

标签: mysql ssis

我正在尝试使用SSIS从MySQL网站数据库中删除(和更新,但是如果我可以删除的话,那么我将可以更新)产品数据,前提是这些产品已在我们的ERP(和sql)中标记用于报告的服务器数据库)已停产。我尝试了以下方法:

首次尝试:将要删除的行保存到记录集中,并使用带有执行SQL任务的for-each循环将其删除as described here

结果:部分起作用,但速度非常慢,每次删除约500次后失败。让我想知道MySql数据库是否具有某种黑客保护功能。


第二次尝试::使用FOR XML PATH:as described here(或一系列)将所有要删除的行的主键转换为逗号分隔的字符串变量因为有4000个字符的限制,所以其中的一个。

SQL选择代码(可以正常工作)

DELETE FROM datarepo.product
WHERE product_sku in (?)

然后使用此结果通过带有以下代码的Execute SQL命令从MySql删除记录:

DELETE FROM datarepo.product 
WHERE product_sku in ('\'')

结果:程序包已执行,但无法删除任何内容。当查看MySql查询日志文件时,我看到了以下内容,它告诉我为什么它无法删除任何内容。

DELETE FROM datarepo.product 
WHERE product_sku in ('1234','5678','abcd', etc...)

请注意,当使用硬编码值(如下所示)时,使用相同的SSIS Execute SQL语句删除也可以。

{{1}}

我在网上找不到其他东西。正如Reza Rad在第一篇链接文章中所述,很难找到有关使用SSIS在MySql上执行操作的资料。

0 个答案:

没有答案