mysql事务类_MySQL事务

事务是数据库处理操作,其中执行就好像它是一个单一的一组有序的工作单元。换言之,事务将永远不会是完全的,除非在组内每个单独的操作是成功的。如果事务中的任何操作失败,整个事务将失败。

实际上,许多SQL查询组成到一个组,将执行所有这些一起作为事务的一部分。

事务性质

事务具有以下四个标准属性,通常由首字母缩写ACID简称:

原子性: 确保了工作单位中的所有操作都成功完成; 否则,事务被中止,在失败时会被回滚到事务操作以前的状态。

一致性:可确保数据库在正确的更改状态在一个成功提交事务。

隔离:使事务相互独立地操作。

持久性: 确保了提交事务的结果或系统故障情况下仍然存在作用。

在MySQL中,事务以BEGIN WORK语句开始开始工作,并使用COMMIT或ROLLBACK语句结束。SQL命令在开始和结束语句之间构成大量事务。

提交和回滚

这两个关键字 Commit 和 Rollback 主要用于MySQL的事务。

当一个成功的事务完成后,COMMIT 命令发出的变化对所有涉及的表将生效。

如果发生故障,ROLLBACK命令发出后,事务中引用的每个表将恢复到事务开始之前的状态。

可以通过设置AUTOCOMMIT这个会话变量控制事务的行为。如果AUTOCOMMIT设置为1(默认值),那么每个SQL语句(在事务或不在事务)被认为是一个完整的事务并提交,在默认情况下是在当它完成时。当AUTOCOMMIT设置为0,通过发出SET AUTOCOMMIT=0命令, 随后的一系列语句就像一个事务,但并没有任何活动被提交直到一个明确的发出 COMMIT 语句。

可以通过使用PHP 的 mysql_query()函数执行这些SQL命令。

关于事务通用示例

此事件序列是独立于所使用的编程语言; 逻辑路径可以是任何编程语言,使用它在创建应用程序中创建。

可以通过使用 mysql_query()函数执行这些PHP SQL命令

开始事务是通过发出SQL命令BEGIN WORK

类似发出的一个或多个SQL命令 SELECT, INSERT, UPDATE 或 DELETE.

根据要求,检查是否有任何错误

如果有错误,发出ROLLBACK命令,否则执行COMMIT命令。

在MySQL的事务安全表类型

不能直接使用事务,可以使用但它们没有安全保障。如果打算使用事务在MySQL编程,那么需要使用一个特殊的方式来创建表。 有许多类型的表其支持事务,但目前最流行的一种是:InnoDB.

支持InnoDB表需要特定的编译参数,在源代码编译MySQL时。如果MySQL版本不支持InnoDB,得要求互联网服务提供商建立一个版本的MySQL的InnoDB表类型的支持,或 下载并安装MySQL-Max二进制分发的Windows版本,或者Linux/UNIX开发环境中工作的表类型。

如果你的MySQL安装支持InnoDB表,简直就是一个TYPE= InnoDB的定义添加到表创建语句后面。例如,下面的代码创建一个名为 tcount_tbl 的 InnoDB 类型表:

root@host# mysql -u root -p password;

Enter password:

mysql> use test;

Database changed

mysql> create table tcount_tbl

-> (

-> tutorial_author varchar(40) NOT NULL,

-> tutorial_count INT

-> ) TYPE=InnoDB;

Query OK, 0 rows affected (0.05 sec)

请检查下面的链接了解更多有关: InnoDB

可以使用其它类型的表 GEMINI或 BDB, 但它取决于安装MySQL时,是否支持这两种类型。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值