dujbo 发表于 2017-7-18 22:49:41

有关MYSQL事务处理的问题,谢谢。

1、在命令行中如果事务中的一条语句执行错误,该事务是否立即rollback并结速事务,后续的语句采用默认的隐形commit?
例:命令行语句:
1      >BEGIN;
2      >INSERTINTO tmp1 VALUE(1);
3      >ROOLBACK;    //语句拼错
4      >INSERT INTO tmp1 VALUE(2);
此时该事务是否在第3行立即结束并回滚第2行的操作?然后再执行并提交第4行的语句,最后tmp只插入了值“2”?
2、用PHP函数进行事务操作时,如果采用mysql_query("SET AUTOCOMMIT=0")来开启事务,但并未在程序结束时将值改回来,恰巧此时的连接是一个长连接,那么另一个页面获得此数据库连接时,AUTOCOMMIT的值会是什么?
3、如果用mysql_query("BEGIN")启动一个事务,但在程序中并没有结束事务的"ROLLBACK"或"COMMIT"语句,连接结束后,是否会自动回滚并结束该事务?

dujbo 发表于 2017-7-19 13:56:26

妈了个蛋,坑死老子了,作死的Apache+php的mysql 长连接!经测试:上一页面未结束的事务会延续到下一个请求该连接的页面!也就是说下一个调用此连接的页面中的SQL语句执行结果全得不到提交!
页: [1]
查看完整版本: 有关MYSQL事务处理的问题,谢谢。