当前位置:首页 > 网络编程 > 数据库 > Mysql > MySQL高级特性----事务处理

MySQL高级特性----事务处理

点击次数:28 次 发布日期:2008-11-28 05:57:17 作者:源代码网
源代码网推荐
源代码网推荐
源代码网推荐  要使用MySQL中的事务处理,首先需要创建使用事务表类型(如BDB = Berkeley DB或InnoDB)的表。
源代码网推荐  
源代码网推荐  CREATE TABLE account (
源代码网推荐  account_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
源代码网推荐  balance DOUBLE
源代码网推荐  ) TYPE = InnoDB;
源代码网推荐  
源代码网推荐  要在事务表上使用事务处理,必须要首先关闭自动提交:
源代码网推荐  
源代码网推荐  SET AUTOCOMMIT = 0;
源代码网推荐  
源代码网推荐  事务处理以BEGIN命令开始:
源代码网推荐  
源代码网推荐  BEGIN;
源代码网推荐  
源代码网推荐  现在mysql客户处在于服务器相关的事物上下文中。任何对事务表所做的改变在提交之前不会成为永久性的改变。
源代码网推荐  
源代码网推荐  UPDATE ACCOUNT SET balance = 50.25 WHERE account_id = 1;
源代码网推荐  UPDATE ACCOUNT SET balance = 100.25 WHERE account_id = 2;
源代码网推荐  
源代码网推荐  在做出所有的改变之后,使用COMMIT命令完成事务处理:
源代码网推荐  
源代码网推荐  COMMIT;
源代码网推荐  
源代码网推荐  当然,事务处理的真正优点是在执行第二条语句发生错误时体现出来的,若在提交前终止整个事务,可以进行回滚操作:
源代码网推荐  
源代码网推荐  ROLLBACK;
源代码网推荐  
源代码网推荐  下面是另一个例子,通过MYSQL直接进行数学运算:
源代码网推荐  
源代码网推荐  SELECT @first := balance FROM account WHERE account_id = 1;
源代码网推荐  SELECT @second := balance FROM account WHERE account_id = 2;
源代码网推荐  UPDATE account SET balance = @first - 25.00 WHERE account_id = 1;
源代码网推荐  UPDATE account SET balance = @second + 25.00 WHERE account_id = 2;
源代码网推荐  
源代码网推荐  除了COMMIT命令外,下列命令也会自动结束当前事务:
源代码网推荐  
源代码网推荐  ALTER TABLE
源代码网推荐  BEGIN
源代码网推荐  CREATE INDEX
源代码网推荐  DROP DATABASE
源代码网推荐  DROP TABLE
源代码网推荐  LOCK TABLES
源代码网推荐  RENAME TABLE
源代码网推荐  TRUNCATE
源代码网推荐  UNLOCK TABLES

源代码网推荐
源代码网推荐
源代码网推荐
源代码网推荐
源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华