504day46_MySQL函数&事务

504day46_MySQL函数&事务,第1张

今日目标

为了简化 *** 作 mysql提供 了大量的函数给程序员使用(比如你想输入当前时间,可以调用now()函数)

函数可以出现的位置:插入语句的values()中,更新语句中,删除语句中,查询语句及其子句中。

菜鸟教程: https://www.runoob.com/mysql/mysql-functions.html

常用

导入数据

练习

常用

练习

常用

练习

语法

练习

语法

练习

如果一个包含多个步骤的业务 *** 作,被事务管理,那么这些 *** 作要么同时成功,要么同时失败。

应用场景:用户转账

准备数据

模拟转账

转账成功

转账失败

模拟转账

注意:

​ 当事务开启后,一部分sql执行成功,添加一个保存点,后续 *** 作报错了,回滚到保存点,保证之前的 *** 作可以成功提交

​ 多个事务之间隔离的,相互独立的。但是如果多个事务 *** 作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题。

性能角度:1>2>3>4

安全角度:4>3>2>1

综合考虑:2 or 3

准备模拟二个事务窗口:A窗口、B窗口

1、启动Navicat for MySQL,新建数据库连接,打开数据库,可能有点啰嗦。

2、可以先查看定时任务的是否开启。通过以下命令:show variables like '%sche%'

3、如果其设置值为为 OFF 或 0 ,通过执行下列语句,来开启event_scheduler,set global event_scheduler =1,把设置为设为ON 或 1。

4、新建一个函数 ,取名为update_qiandao ,内容为 UPDATE week7_user SET isqiandao = 0

5、参照上图,新建一个事件 ,在定义里写 call update_qiandao() --也就是之前定义的函数

在“计划”选项卡中设置 执行时间,这里我选择的是每天。

begin//开始事务

select * from table for update

程序执行

update table set xxx=xxx where id=xx

commit//没有报错的话就提交

rollback//有报错的话就回滚


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7331199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存