zoukankan      html  css  js  c++  java
  • 数据库三种事务

    什么是事务 是不可分割的逻辑单元,由多个操作部分组成
    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
    模仿银行存钱,只要两条语句有一条执行失败就会回滚
  • 相关阅读:
    2、MapStruct 深入理解
    1、MapStruct的应用
    Spring中的注解
    java中的三个内置注解
    依赖注入集合属性
    List Set Map的特点
    为类类型的属性依赖注入值
    java常用专业术语
    Bean的作用域范围
    Bean的生命周期
  • 原文地址:https://www.cnblogs.com/cg-ww/p/13097622.html
Copyright © 2011-2022 走看看