数据库三种事务

简介: 数据库三种事务

什么是事务 是不可分割的逻辑单元,由多个操作部分组成

select  GETDATE()--函数

1.自动提交事务

insert、update、delete都是自动提交事务

比如一个学生表和班级表有外键约束 只删掉班级表的数据是执行不了的

insert into Student

values('张三','男',20,'2020-3-16')

commit;一旦提交就持久化了,不能再回滚

rollback;

我们先执行insert再回滚报错

COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION

2.隐式事务

我们开启开启隐式事务

set implicit_transactions on--开启隐式事务、off关闭

 

先insert在回滚数据就没有了这样的数据叫脏数据,相当于缓存,需要手动持久化提交

3.显示事务

--开始事务
begin transaction
declare @errorNum int =0--定义存放错误的结果
update Student set age=Age+10  where ID=12
set @errorNum=@errorNum+@@ERROR--非零
update Student set age=Age-10  where ID=10
set @errorNum=@errorNum+@@ERROR--非零
if @errorNum<>0
begin
rollback transaction
end 
else
begin
commit transaction
end


模仿银行存钱,只要两条语句有一条执行失败就会回滚

相关文章
|
4月前
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
2月前
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
21小时前
|
SQL 存储 Java
数据库———事务及bug的解决
事务的一些概念,并发事务以及并发事务引起的bug,脏读,不可重复读,幻读,数据库中的隔离级别,事务的简单应用
|
4月前
|
SQL 数据库 数据安全/隐私保护
SQL Server数据库Owner导致事务复制log reader job无法启动的解决办法
【8月更文挑战第14天】解决SQL Server事务复制Log Reader作业因数据库所有者问题无法启动的方法:首先验证数据库所有者是否有效并具足够权限;若非,使用`ALTER AUTHORIZATION`更改为有效登录名。其次,确认Log Reader使用的登录名拥有读取事务日志所需的角色权限。还需检查复制配置是否准确无误,并验证Log Reader代理的连接信息及参数。重启SQL Server Agent服务或手动启动Log Reader作业亦可能解决问题。最后,审查SQL Server错误日志及Windows事件查看器以获取更多线索。
|
6月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
|
2月前
|
数据库
什么是数据库的事务隔离级别,有什么作用
【10月更文挑战第21】什么是数据库的事务隔离级别,有什么作用
26 3
|
2月前
|
存储 关系型数据库 数据挖掘
什么是数据库的事务隔离级别
【10月更文挑战第21】什么是数据库的事务隔离级别
39 1
|
2月前
|
存储 数据库 数据库管理
数据库事务安全性控制如何实现呢
【10月更文挑战第15天】数据库事务安全性控制如何实现呢
|
2月前
|
存储 数据库 数据库管理
什么是数据库事务安全性控制
【10月更文挑战第15天】什么是数据库事务安全性控制
|
2月前
|
供应链 数据库
数据库事务安全性控制有什么应用场景吗
【10月更文挑战第15天】数据库事务安全性控制有什么应用场景吗