mysql数据库触发器 事务_mysql数据库的基本操作(事务、变量、触发器、函数、存储过程)...

目录:

1.事务

2.事务原理

3.事务--回滚点

4.自动事务

5.事务特性ACID

6.变量

7.触发器

8.创建触发器

9.查看触发器

10.使用触发器

11.触发器记录

12.if分支

13.while循环

14.函数

15.自定义函数

16.查看函数

17.删除函数

18.函数的参数

19.函数--作用域

20.存储过程

21.存储过程--参数

1.事务transaction   

* 需求:有一张银行账户表,有A用户给B用户转账:A账户先减少,B账户增加,但是A操作完

之后断电了。

* 解决方案:A减少钱,但是不要立即修改数据表,B收到钱之后,同时修改数据表。

* 事务安全

- 事务:一系列连续的操作。这些操作要么全部成功,要么全部失败。

- 事务安全:一种保护连续操作同时满足的机制

- 事务安全的意义:保证数据操作的完整性

* 注意:引擎myisam不支持事务,也不支外键;innodb支持事务,也支持外键。

-- 创建表时指定引擎

drop table if exists tb_account;

create table tb_account(

number varchar(20) not null unique comment '账户',

name varchar(20) not null comment '户主名',

money decimal(10,2) default 0.0 comment '账户余额'

)charset utf8 engine innodb;

insert into tb_account values(null,'0001','张三',1000.00),(null,'0002','李四',1000.00);

* 手动开启事务:start transaction;

update tb_account set money = money -100 where id = 1;

update tb_account set money = money +100 where id = 2;

* 提交事务 commit;

* 回滚事务 rollback;

2.事务原理   

* 事务操作原理:事务开启之后,所有的操作都会临时保存到事务日志,事务日志只有在得到commit命令

才会同步到数据表,其他任何情况都会清空(rollback,断电,断开连接)

3.事务--回滚点       

* 设置回滚点:savepoint 回滚点名;

* 回到回滚点:rollback to 回滚点名;

4.自动事务   

* 在mysql中,默认的都是自动事务处理,用户操作完会立即同步到数据表中

* 自动事务,系统通过autocommit变量控制

show variables like 'autocommit';      select @@autocommit;

* 关闭自动事务处理 set autocommit = off/0;

* 自动事务处理关闭后需要手动提交或回滚

* 通常,我们都会使用自动事务,  开启 set autocommit = on/1;

5.事务特性ACID   

* atomic[əˈtɒmɪk]:原子性,事务的整个操作是一个整体,不可分割,要么全部成功,要么全部失败

* consistency[kənˈsɪstənsi]:一致性,事务操作的前后,数据表的数据没有变化

* isolation:隔离性,事务操作时相互隔离,不受影响

* durability:持久性,数据一旦提交,不可改变,永久的改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值