+ -
当前位置:首页 → 问答吧 → mysql 5.1事务处理问题

mysql 5.1事务处理问题

时间:2011-10-28

来源:互联网

百度了一下(google被》》》疯,翻******强软件也被搞死),发现是这样的,先用begin;和commit;
BEGIN; #事务处理
  SELECT A into iCount from txpxx where SH=3 FOR UPDATE;#事务处理,for UPDATE 在此的作用,使其他用户执行此语句时,先等前面的用户执行完事务。
  update ........
COMMIT; //提交事务


我发现,Begin;这句语法错误,把它注销掉就能编译。我的是mysql 5.1版本的。help,请问怎么回事????不用begin;怎么知道从哪开始事务呢?
还有一种方法,就是set autocommit=0 ;set autocommit=1;;但是这种方法能保证线程同步吗?也就是类似桌面应用程序的临界区,即某段代码,同时只能有一个线程在运行。

作者: allen12345   发布时间: 2011-10-28

我是在一个存储过中使用事务处理的

作者: allen12345   发布时间: 2011-10-28

set autocommit=1; //这个为自动提交事务,默认
所以当你提交完事务后,事务已经被处理完成了,不需要在用commit

如果要用commit,就得一开始设置set autocommit=0;

使用
set autocommit=0;
commit;
这个应该是可以保证现成同步

作者: moocky   发布时间: 2011-10-28

该回复于2011-10-28 12:32:57被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • ACMAIN_CHM
  • (acmain)
  • 等 级:
  • 2

    6

    更多勋章
#4楼 得分:0回复于:2011-10-28 12:31:52
错误信息是什么?

作者: aklhafklwg   发布时间: 2011-10-28

存储过程中,你不要用BEGIN,应该用START TRANSACTION

作者: ACMAIN_CHM   发布时间: 2011-10-28

strat transaction
  insert into ...
  insert inot ...
commit

作者: ACMAIN_CHM   发布时间: 2011-10-28

1.方法一
SET AUTOCOMMIT=0;
.......

COMMIT OR ROLLBACK;

2.方法二
START TRANSACTION;
..............
COMMIT;

3.BEGIN COMMIT 是最古老的方式!

#****************************************#
MySQL技术及运维自动化网:www.mysqlops.com

新浪微博账号:http://weibo.com/mysqlops
#****************************************#

作者: rucypli   发布时间: 2011-10-28

相关阅读 更多

热门下载

更多