mysql 事务应用_Mysql-16-事务的应用

本文详细介绍了MySQL事务的使用,包括事务的原子性、孤立性和持久性特性,以及如何创建和管理事务。讲解了如何初始化、提交和回滚事务,并讨论了自动提交、事务的孤立级别(序列化、可重读、提交后读、未提交读)以及表锁定作为伪事务的实现。同时,文章提到了MySQL不同存储引擎对事务的支持情况,如InnoDB和MyISAM的区别。
摘要由CSDN通过智能技术生成

在mysql中,事务是由单独单元的一条或多条sql语句组成。

事务的特性原子性

孤立性

持久性

MySQL事务的创建和存在周期

创建事务的过程:

初始化事务、创建事务、应用select语句查询数据是否被录用、提交事务

用户需要创建一个innodb或者bdb类型的数据表

create table table_name(field_defintions) type= innodb/bdb;

当用户希望将已经存在的表支持事务处理,则用户可以应用alter table命令

alter table table_name type=innodb/bdb;

1、初始化事务

start transaction;

2、创建事务

初始化事物成功后,可以创建事物。向名称为connection的数据表中插入一条记录为例。

打开数据库 --选择某个数据库---初始化事物----创建事物---向指定的数据表中添加纪录

mysql -uroot -p密码

use db_database16;

start transaction;

insert into  connection(email,cellphone,QQ,sid) values('barrystephen@126.com',13456000000,187034000,3);

3、应用select语句查询数据是否被正确录入

事务创建成功后,应通过select语句查询数据是否被正确录入

select * from connection where sid=3;

4、提交事务

当且仅当用户成功提交事物后,其他用户才能通过select语句查询事务结果

conmmit;

5、撤销事物

又称事务回滚

命令:

rollback

执行一个回滚操作,则在输入start transaction命令后的所有sql语句都将执行回滚操作。未提交的事务,默认自动回滚状态

6、事务的存在周期

从输入start transaction指令开始直到用户输入commit结束。

事务不支持嵌套功能,当用户在未结束第一个事务又重新打开一个事务时,则一个事务会自动提交。

7、mysql事务行为

存在两个控制行为的变量,autocommit 、transaction isolaction level

自动提交

用户可以通过控制mysql自动提交参数,可以更改提交模式

通过命令关闭自动提交参数

set autocommit=0;

8、事务的孤立级

序列化:serializable

可重读:repeatable read

提交后读:read committed

未提交读:read uncommitted

9、修改事务的孤立级

修改事物的独立级

transaction isolation level

可以使用select命令获取当前事务孤立级变量的值

select @@tx_isolation;

设置孤立级

set global transaction isolation level read committed;

10、事务的性能

11、MySQL伪事务

用表锁定代替事务

MyISAM类型表不支持commit和rollback

1、为指定数据表添加锁定

lock table table_name lock_type,...

2、用户执行数据表的操作,可以添加、删除或者更改部分数据‘

3、用户完成对锁定数据表的操作后,需要对该表进行解锁操作,释放该表的锁定状态

unlock tables;

以读方式锁定数据表

lock table studentinfo read;

unlock tables;insert into studentinfo (name,age,sex,tel) values('larrybird','29','M',19876543214);

以写方式锁定数据表

lock table studentinfo write;

12、应用表锁实现伪事务

1、对数据库的数据表进行锁定操作

lock table table_name1 lock_type1,table_name2 lock_type2,...

2、执行数据库操作,向锁定的数据表中执行添加、删除、修改等操作。

3、释放锁定的数据表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值