mysql触发器 事件类型_(mysql)触发器、事件、事务、函数

本文探讨了事务的原理,包括开启事务、回滚点设置和ACID特性,重点讲解了InnoDB的行锁与表锁,以及如何管理MySQL的会话和全局变量。此外,还涉及了非索引搜索、触发器、自定义函数等内容,为开发者提供全面的数据库操作指南。
摘要由CSDN通过智能技术生成

1.事务操作原理:事务开启之后Start transaction,所有的操作都会临时保存到事务日志。只有在得到commit才会关闭,否则清空;

2.设置回滚点: savepoint 回滚点名字;  回到回滚点: rollback to 回滚点名字;

3.事务特性:ACID  A:原子性,要么成功,要么失败 C:一致性,只有commit时才会改变 I:隔离性,两个窗口操作互不影响 D:永久性,数据提交,不可改变;

3_2.锁机制: innodb默认是行锁, 但是如果在事务操作的过程中, 没有使用到索引,那么系统会自动全表检索数据, 自动升级为表锁

4.非id字段没有索引,搜索时会全表检索;形成表索;

4_2.会话级别: 临时修改, 当前客户端当次连接有效  Set 变量名 = 值;/Set @@变量名 = 值;全局级别: 一次修改,永久生效(对所有客户端都生效)  Set global 变量名 = 值;

5.修改系统变量:set 变量 = 值;

6.设置自定义变量:set @变量名; 查看:select @变量名;

7.在mysql中 = 会被当做比较处理 所以赋值一般用:=

8.变量不区分数据库,跟着用户走;

9.触发器:事件类型(insert delete update),触发时间(before after),触发对象

10.触发器基本语法

-- 临时修改语句结束符

Delimiter 自定义符号: 后续代码中只有碰到自定义符号才算结束

Create trigger 触发器名字 触发时间 事件类型 on 表名 for each row

Begin -- 代表左大括号: 开始

-- 里面就是触发器的内容: 每行内容都必须使用语句结束符: 分号

End -- 代表右带括号: 结束

-- 语句结束符

自定义符号

-- 将临时修改修正过来

Delimiter  ;

10_2.Old代表的是旧记录,new代表的是新记录

11.事件类型和触发事件不能一致 不然会死循环;

12.创建触发器:create trigger 触发器名字 触发时间

13.在mysql中只有if分支;if 条件 then 执行代码(如果不执行用end if结束)

14.自定义函数 create function 函数名 returns 。。。

15.像函数 触发器 表单 这种结构 即使退出,重新登录是还在;

16.创建函数只在当前数据库使用,不能跨库;

17.mysql的作用域与js的作用域一样;全局变量可以在任何地方使用,局部变量只能在函数内部使用;

18.mysql在调用函数的时候才会发现错误;

19.存储过程是一种没有返回值的函数;

20.过程没有返回值: select是不能访问的.要用call

21.set之后可以不用:=

22.procedure局部变量和全局变量无关;在调用结束之后,out和inout类型 系统会将局部变量的值重新返回给全局变量

23.关于procedure的in out inout

1.in的话就是可以给pro()赋值 或者外面定义变量@ 也可以 eg:pro(1);或者set @a=1 ;pro(@a);

2.out只能用外面定义变量@赋值给pro() 并且会 将变量@变成null

3.inout只能在外面定义变量@赋值给pro()但是变量@不变;

24.全局变量和局部变量互不影响;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值