IT技术网www.itjs.cn

当前位置:首页 > 数据库 > MySQL > 定义MySQL事务的例子

定义MySQL事务的例子

发布时间:2010-10-11 09:25 来源:未知

定义MySQL事务应该是每一个MySQL数据库用户都应该会的,下面就将为您讲解如何定义MySQL事务,希望对您有所帮助。

MySQL默认的行为是在每条SQL语句执行后执行一个COMMIT语句,从而有效的将每条语句独立为一个事务。

在复杂的应用场景下这种方式就不能满足需求了。

为了打开事务,允许在COMMIT和ROLLBACK之前多条语句被执行,我们需要做以下两步:

1, 设置MySQL的autocommit属性为0,默认为1

2,使用START TRANSACTION语句显式的打开一个事务

如果已经打开一个事务,则SET autocommit=0不会起作用,因为START TRANSACTION会隐式的提交session中所有当前的更改,结束已有的事务,并打开一个新的事务。

使用SET AUTOCOMMIT语句的存储过程例子:

CREATE PROCEDURE tfer_funds           (from_account int, to_account int, tfer_amount numeric(10,2))      BEGIN           SET autocommit=0;                UPDATE account_balance SET balancebalance=balance-tfer_amount WHERE account_id=from_account;                UPDATE account_balance SET balancebalance=balance+tfer_amount WHERE account_id=to_account;                COMMIT;      END;    

以上定义MySQL事务的方法介绍。