您当前的位置: 首页 >  sql

壹小俊

暂无认证

  • 1浏览

    0关注

    885博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Mysql第四课--事务

壹小俊 发布时间:2019-09-16 10:12:35 ,浏览量:1

1>事务是指逻辑上的一组操作,组成这组操作的各个单元,要不全成功要不全失败。     - 支持连续SQL的集体成功或集体撤销。     - 事务是数据库在数据执行方面的一个功能。     - 需要利用 InnoDB 或 BDB 存储引擎,对自动提交的特性支持完成。     - InnoDB被称为事务安全型引擎。 -- 事务开启     START TRANSACTION; 或者 BEGIN;     开启事务后,所有被执行的SQL语句均被认作当前事务内的SQL语句。 -- 事务提交     COMMIT; -- 事务回滚     ROLLBACK;     如果部分操作发生问题,映射到事务开启前。 -- 事务的特性     1. 原子性(Atomicity)         事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。     2. 一致性(Consistency)         事务前后数据的完整性必须保持一致。         - 事务开始和结束时,外部数据一致         - 在整个事务过程中,操作是连续的     3. 隔离性(Isolation)         多个用户并发访问数据库时,一个用户的事务不能被其它用户的事物所干扰,多个并发事务之间的数据要相互隔离。     4. 持久性(Durability)         一个事务一旦被提交,它对数据库中的数据改变就是永久性的。 -- 事务的实现     1. 要求是事务支持的表类型     2. 执行一组相关的操作前开启事务     3. 整组操作完成后,都成功,则提交;如果存在失败,选择回滚,则会回到事务开始的备份点。 -- 事务的原理     利用InnoDB的自动提交(autocommit)特性完成。     普通的MySQL执行语句后,当前的数据提交操作均可被其他客户端可见。     而事务是暂时关闭“自动提交”机制,需要commit提交持久化数据操作。 -- 注意     1. 数据定义语言(DDL)语句不能被回滚,比如创建或取消数据库的语句,和创建、取消或更改表或存储的子程序的语句。     2. 事务不能被嵌套 -- 保存点     SAVEPOINT 保存点名称 -- 设置一个事务保存点     ROLLBACK TO SAVEPOINT 保存点名称 -- 回滚到保存点     RELEASE SAVEPOINT 保存点名称 -- 删除保存点 -- InnoDB自动提交特性设置     SET autocommit = 0|1;   0表示关闭自动提交,1表示开启自动提交。     - 如果关闭了,那普通操作的结果对其他客户端也不可见,需要commit提交后才能持久化数据操作。     - 也可以关闭自动提交来开启事务。但与START TRANSACTION不同的是,         SET autocommit是永久改变服务器的设置,直到下次再次修改该设置。(针对当前连接)         而START TRANSACTION记录开启前的状态,而一旦事务提交或回滚后就需要再次开启事务。(针对当前事务) 2>表锁

表锁定只用于防止其它客户端进行不正当地读取和写入 MyISAM 支持表锁,InnoDB 支持行锁 -- 锁定     LOCK TABLES tbl_name [AS alias] -- 解锁     UNLOCK TABLES

关注
打赏
1664335782
查看更多评论
立即登录/注册

微信扫码登录

0.0386s