存储过程,Event事件,简单易懂,志伟随笔

一张图片,一下午的时间没了,直接上图,然后慢慢讲解

在这里插入图片描述
先解释下每一行的sql啥意思

TRUNCATE TABLE `table`;

删除表中数据,让他从0开始增长

UPDATE `line_table` SET  time = DATE_ADD(time,INTERVAL 1 DAY) 

往后加一天Date_add,向前加一天就是Date_sub,两个基本函数而已,没啥意义

CREATE EVENT if not exists e_test 
     on schedule every 3 second 
        
     do CALL test ();

运行存储过程test,这是一个event事件,写的有存储过程的话直接CALL存储过程名字就可以了,如果想直接运行SQL直接DO后面直接写sql就可以,亲测也可以实现

show variables like '%sche%'; 

查看Event事件是否开启,这个很重要,第一次运行存储过程没反应,找了好久的错误才找到,嗯,这个切记,一定要开启事务

set global event_scheduler=1;

将时间任务开启0是关,1是开,所以在这里设置为1

alter event e_test ON COMPLETION PRESERVE ENABLE; 

同理Enable是开,Disable就是关

DROP EVENT IF EXISTS e_test

删除事件,尽量用if exists判断一下,因为如果在你删除的时候万一不存在这个事件,不就报错了吗,多写两个单词少个错误提示挺好的

 CREATE PROCEDURE test () 
     BEGIN 
         UPDATE xczh.line_table SET  time = DATE_ADD(time,INTERVAL 1 DAY); 
     END;  

存储过程,就是一个proceduer,创建一个存储过程,然后Begin开始end结束,当然也有复杂的存储过程,多添加一些条件罢了

也就这么多吧,至于触发器就不写了,那个东西用的比较多,比较熟悉,说白了就是特殊的存储过程,尽量少用触发器,因为占用内存比较大,针对那些不经常改变的表用一下还是挺好的,如果经常改动的表,不建议使用触发器,

下班了才发现一个很严重的问题,一开始的思路就错了,一个用户对应三十天数据,明明直接一直存,只查询最近三十天的数据就可以了,非要搞什么存储过程,改变日期什么的,好吧,白忙活了,哈哈,明天直接用一个存储过程中的定时器,直接一步到位就OK了,定时器先不写了,今天就到这里吧,看会学习视频,打打游戏,吃饭睡觉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值