在C# mysql项目中,
SQL语句语法为:Insert into ..var () .... on duplicate update ..
连续提交SQL插入更新,每SQL语句插入或更新约3000条记录
最先提交的SQL语句成正确插入或更新到数据库,之后提交的SQL语句(同一函数由事件触发连续提交SQL语句,每SQL语法相同,若单独提交时能执行正确)。函数不报错,看似没有执行SQL语句(函数断点跟踪显示提交的SQL语句正确),数据库中记录无变化。
mysql 版本为5.5 表存储引擎为 innodb 

解决方案 »

  1.   

    看mysql的日志,才能确定你到底是不是真的执行了这些SQL语句。“函数断点跟踪显示提交的SQL语句正确”只能说明应用层没有问题。还有DB的连接,DB执行两个环节也要确认才行。
      

  2.   

    谢谢 jiahehao
    我是在一个函数体中 循环提交SQL语句的,只是第一个SQL语句正确执行了,之后的SQL语句没能正确执行,
    提交时仅是 Insert to 语句不同,DBHelperMysql对象是一个,不存在连接问题
      

  3.   

    但第一条SQL语句执行了的
    我将第二条 SQL语句 拷贝到管理软件中执行,也能正确执行
      

  4.   

    有没有可能是 事务锁上的关系,由于数据量大,第一条SQL没有执行完,第二条被丢弃了
      

  5.   

    函数是多线程的,由事件触发,生成SQL提交,
    与多线程 表锁有关系没有?