今日目标
为了简化 *** 作, 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//有报错的话就回滚
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)