你db.execSQL(sql)中的sql是怎么写,如果db.execSQL(sql)执行出现异常,那么你的事务将不会被标记,就是没有执行db.setTransactionSuccessful()而直接执行了db.endTransaction(),那么所有的操作将回滚。

解决方案 »

  1.   

    更新时将数据库version变动下,直接oncreate(db)不行
      

  2.   

    没有回滚,执行了
    因为onUpgrade()函数本身就执行在一个事务中,如果oncreate()执行异常也同样会回滚的。
      

  3.   

    没有回滚,执行了
    因为onUpgrade()函数本身就执行在一个事务中,如果oncreate()执行异常也同样会回滚的。没有执行异常啊
      

  4.   

    没有回滚,执行了
    因为onUpgrade()函数本身就执行在一个事务中,如果oncreate()执行异常也同样会回滚的。没有执行异常啊
    我也就知道这么多了,那我们一起坐等大神吧。
      

  5.   

    难道不是直接drop掉,重新创建,,,
      

  6.   

    delAllTab();这个方法里面就是做了删表的操作
      

  7.   

    重新创建会执行onUpgrade()吗?
      

  8.   

    你的方法里面不是有事物么,我直接drop就不用执行事务了,,,
      

  9.   

    重新创建会执行onUpgrade()吗?他不是回调了一个oncreate的么
      

  10.   


    我的疑惑点就是在,如果我在delAllTab这个方法里用了事务, onUpgrade这个方法就会不停的循环调用,
    如果把事务去掉,onUpgrade就正常的运行一次结束.
      

  11.   

    重新创建会执行onUpgrade()吗?我的疑惑点就是在,如果我在delAllTab这个方法里用了事务, onUpgrade这个方法就会不停的循环调用,
    如果把事务去掉,onUpgrade就正常的运行一次结束.