当开启事务时,向表中插入数据的时候,在未提交前表中的数据是没有的。应该怎么让表中数据存在?
即使错了,就回滚呗,最后都正确了就提交!

解决方案 »

  1.   

    “应该怎么让表中数据存在?”
    你这不是违背了ACID嘛,
      

  2.   

    mysql不支持这种功能,DB2到是可以。
      

  3.   

    那mysql的web开发 事务是怎么控制的啊?
    就是说我table1(id,name);
    table2(id,table1_id,type);
    table3(id,table1_id,type);
    table1表为主表,table2和table3的table1_id字段是外键关联。
    那么当
    1.transaction
    2.insert into table1 
    3.insert into talbe2  在这里就不能插入,因为table1现在的数据还没真正插入到表中,由于外键约束,出现异常。这应该怎么解决?4.insert into talbe3 
    5.commit;
      

  4.   

    这个问题应该怎么解决呢?
    是不是大家都学mysql的
    我用的java的事务控制
    怎么不行?
      

  5.   

    在 "同一个事务中" ,你第2行插入table1表中的数据,在第3行是可以看到的,不是同一个事务的就看不见.
    你可以在第2,第3行之间加入一条select,看看你就2行插入的数据是不是看得到.
      

  6.   


    不会吧?在同一个事务里,即使没COMMIT,也是可见的啊
    我从来没出现这样的错误.你用的是MYSQL的innodb引擎吗?