事务

事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。

事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。

COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。

ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。

事务的特性(ACID特性)

A:原子性(Atomicity)

       事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。

B:一致性(Consistency)

       事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

C:隔离性(Isolation)

      一个事务的执行不能被其他事务干扰。

D:持续性/永久性(Durability)

      一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

set session transaction isolation level [read uncommitted |  read committed | repeatable read |serializable]

read uncommitted:  读未提交的事务内容,显然不符原子性, 称为”脏读”. 在业务中,没人这么用.

read commited:   在一个事务进行过程中, 读不到另一个进行事务的操作,但是,可以读到另一个结束事务的操作影响.

repeatable read: 可重复读,即在一个事务过程中,所有信息都来自事务开始那一瞬间的信息,不受其他已提交事务的影响. (大多数的系统,用此隔离级别)

serializeable 串行化  , 所有的事务,必须编号,按顺序一个一个来执行,也就取消了冲突的可能.这样隔离级别最高,但事务相互等待的等待长. 在实用,也不是很多.

设置事务的级别:

set session transaction isolation level read uncommitted;

header("Content-type:text/html;charset=utf-8");

$conn = mysql_connect('localhost','root','88521') or die ("数据连接错误!!!");

mysql_select_db('test',$conn);

mysql_query("set names 'uft8'"); //使用GBK中文编码;

//开始一个事务

mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION");

$sql = "INSERT INTO score (sid, core) VALUES ('2', '92')";

$sql2 = "INSERT INTO student (name) VALUES('test1')";

$res = mysql_query($sql);

$res1 = mysql_query($sql2);

if($res && $res1){

mysql_query("COMMIT");

echo'提交成功。';

}else{

mysql_query("ROLLBACK");

echo'数据回滚。';

}

mysql_query("END");

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、事务 1、事务四要素:ACID 对于事务,我之前的理解是很粗糙的,不就是为了保证操作的原子性么?一般订单系统或...
    张伟科阅读 1,494评论 0 5
  • 来源转载自:http://www.cnblogs.com/ymy124/p/3718439.html MySQL的...
    Mrwangs阅读 2,013评论 0 8
  • 事务(Transaction)是数据库区别于文件系统的重要特性之一。 在文件系统中, 如果正在写文件, 但是操作系...
    好好学习Sun阅读 1,133评论 0 5
  • 后来,你都如何回忆我,带着笑或是很沉默? ———刘若英《后来》 高考前一天的清晨,大雨...
    如月如月阅读 450评论 19 14
  • redis属于NoSql分类,它把数据都是缓存在内存中的,我们都知道内存的读写效率跟硬盘不是一个级别的,最后red...
    数据萌新阅读 1,255评论 0 0

友情链接更多精彩内容