Mysql事务回滚视图

Transaction Control language

 

事务:

一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行

 事务的创建

隐式事务:事务没有明显的开启和结束的标记

比如insert update delete

delete from 表 where id=1;

 

显示事务:事务具有明显的开启和结束的标记

前提:必须先设置自动提交功能为禁用

set autocommit=0;//关闭自动提交

show variables like ‘autocommit’//显示自动提交变量

事务的语句:

步骤1:开启事务

set autocommit=0;//关闭自动提交

start transaction;可选的

步骤2:编写事务中的sql语句(select insert update delete)

语句1;

语句2:

。。。

步骤3:结束事务

commit;提交事务

rollback;回滚事务

 

commit才表名将数据提交到了磁盘,否则只停留在内存中

 

 

数据的隔离级别

 

读未提交可以,即事务结束都没有没有commit,事务1和事务2是在内存中交互,事务1读取事务2的数据,假如事务1回滚回到zu最处的数据,事务1再次到磁盘读取,显示的数据会再次改变;

读已提交:事务1始终要从事务2 的磁盘中读取数据,而不是在事务1在内存中读取事务2的数据;事务1读取事务2的数据后,显示,改变事务2的数据,并commit提交到磁盘,事务1在磁盘读取 避免脏读

 

可重复读:即当两个事务都没有提交时,事务1始终读取到的是事务2的原始数据,需要当两者事务都提交,重新开启了新事务,在次读取事务2的数据会发生改变 避免不可重复读

 

最高级别:当事务2需要插入数据时,必须要等待事务1提交后才能进行事务2的操作

delete和truncate在事务使用时的区别

#演示delete支持回滚

set autocommit=0;

start transaction;

delete from account;

rollback;

#演示truncate 不支持回滚

set autocommit=0;

start transaction;

truncate table account

rollback;

个脚本也是同一个数据库连接,需要到cmd开多个 数据库

回滚的演示

关键字:savepoint 节点名,保存节点

视图

含义:虚拟表,和普通表一样使用

mysql5.1版本出现的特性,是通过表动态生成数据

 

视图和表的对比:

 

创建视图:

create view 视图名

as 查询语句;(较复杂的语句) 

 

视图修改:

方式一:

create or replace myv3

as 语句          不存在就创建,存在就修改

 

方式2:

alter view 视图名

as 查询语句 

 

三 删除视图

语法:drop view 视图名,视图名,。。。;

 

四 查看视图

DESC myv3

show create view 名;效果比较低

五试图更新

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值