我的应用程序中有以下代码,用于更新数据库。
MySqlConnection summaryConn = new MySqlConnection(summaryConStr);
MySqlCommand summaryCmd = new MySqlCommand();
summaryCmd.Connection = summaryConn;
int effectedRows = 0;
try
{
summaryConn.Open();
foreach (string query in queries)
{
try
{
if (query.Length == 0)
continue;
if (summaryConn.State != ConnectionState.Open)
summaryConn.Open();
summaryCmd.CommandText = query;
int tempRowCount = -1;
tempRowCount = summaryCmd.ExecuteNonQuery();
effectedRows = tempRowCount > -1 ? effectedRows + tempRowCount : effectedRows;
}
catch (Exception ex)
{
logExeption(ex);
}
}
}
catch(Exception exc)
{
logException(exc)
}
以下是上述代码的日志:
writeIntoAnalytics:startedOn:2014-01-16 22:48:17。
在2410.9814453秒内在分析中更新/插入/删除了6778634行。
inserted:0,更新时间:905,删除:0。 writtingIntoAnalytics完成时间:2014-01-16 23:28:28。
左右,目标表被索引,插入行分为8列基于unique_key索引,更新和删除行使用auto_increment primary_key 。
这里我的问题是因为要更新的总行数是905,没有要插入和删除的内容。那么为什么影响行是6778634?虽然这种行为很少见,但对我来说很痛苦。
任何人都可以指导我缺少的东西吗?
谢谢。