C# 从一个表中读取并插入到另一个表中-一次一行
我正在处理一个有数百万行的大型数据库。我想通过C运行一条SQL语句,它从一个数据库中选择120万行,并在解析和修改一些数据后将它们插入到另一个数据库中 我最初希望通过首先运行select语句并通过遍历包含数据的MySqlDataReader对象来解析数据。这将是一个内存开销,所以我决定选择一行,解析它并插入到另一个数据库中,然后移到下一行C# 从一个表中读取并插入到另一个表中-一次一行,c#,mysql,sql,.net,C#,Mysql,Sql,.net,我正在处理一个有数百万行的大型数据库。我想通过C运行一条SQL语句,它从一个数据库中选择120万行,并在解析和修改一些数据后将它们插入到另一个数据库中 我最初希望通过首先运行select语句并通过遍历包含数据的MySqlDataReader对象来解析数据。这将是一个内存开销,所以我决定选择一行,解析它并插入到另一个数据库中,然后移到下一行 如何做到这一点?我已经尝试了MySQL查询的SELECT….INTO语法,但是这似乎仍然选择了所有数据,然后将其插入后面。使用SqlBulkCopy类将数据从
如何做到这一点?我已经尝试了MySQL查询的SELECT….INTO语法,但是这似乎仍然选择了所有数据,然后将其插入后面。使用SqlBulkCopy类将数据从一个源移动到另一个源
我不确定您是否能够向现有表中添加新列。如果可以添加新列,则可以将新列用作标志。它可以被转移到池中 您将一次选择一行,条件transferd=FALSE并执行该过程。处理该行后,应更新为transferd=TRUE
或者,在现有表中必须有uniqe id列。创建一个临时表,该表将存储已处理行的id,这样您就可以知道哪些行已处理或未处理我不太确定您的错误是什么。对于您的情况,我建议您应该使用“select top 1000”来获取数据,因为逐个插入行的速度非常慢。在这之后,您可以使用“insert into query”,需要注意的是sqlbulkcopy仅适用于sql server,我建议您使用stringbuilder进行sql查询,如果您使用string,对字符串进行concat会有很大的开销。但我需要一次执行一行,并解析每个值来更改和修改它们。您能否提供一个更改示例,无论是两列求和还是删除值等?