mysql使用存储过程和event定期删除】的更多相关文章

-- 创建存储过程DELIMITER //CREATE PROCEDURE del_data()BEGIN DELETE FROM t_route_status WHERE route_date < DATE_SUB(CURDATE(),INTERVAL 7 DAY);END ; -- 创建事件 CREATE event del_event ON SCHEDULE EVERY 1 DAY STARTS '2019-03-08 06:00:00' ON COMPLETION PRESERVE EN…
需求: 1.日志表需要按天分区 2.只保留一个月数据 方案: 1.创建两个事件,一个事件生成未来需要的分区,另一个事件定期检查过期数据(移除分区) 2.创建事件每小时执行一次,删除事件每天执行一次 3.事件开始时需要先创建一个当前所需分区 全量方法: 1.先构造存储过程 create_partition_today :将表转化为分区表,并将历史数据归集到该分区,未来数据则按天放置: #alter table to partition table DELIMITER $$ USE `dc_log`…
MySQL5.1.x版本中引入了一项新特性EVENT,定期执行某些事物,这可以帮助我们实现定期执行某个小功能,不在依赖代码去实现. 我现在有一张表,这张表中的数据有个特点,每天都会有大量数据插入,但是昨天的数据已经不存在一点价值.现在需要在mysql中创建 一个定时器,每天删除昨天之前的数据. 首选查看mysql事件开启情况 SHOW VARIABLES LIKE 'event_scheduler'; 默认情况下是关闭的,需要我们去打 SET GLOBAL event_scheduler = O…
背景: OA系统数据库是mysql,引擎为myisam,可以直接通过拷贝数据库文件的方式进行备份 创建只备份数据库的任务: 创建保存mysql数据库备份文件的目录mysqlbak mkdir /home/mysqlbak 编辑shell脚本 vi /usr/sbin/bakmysql 加入如下内容: #关闭mysql数据库服务 /opt/lampp/lampp stopmysql #创建以当前日期为名称的目录 cd /home/mysqlbak time=$(date '+%Y%m%d') mk…
一.背景 将界面操作日志存储在MySQL数据库中的operationlog表中,如果该表不能自动备份,表中的数据会越来越多,影响速度.可以定期将表中数据备份到另外一个表中来解决. 二.解决方案 1.使用MySQL中的存储过程+事件解决. 存储过程逻辑为: 1)创建一个新表operationlog_temp,各字段同operationlog相同; 2)将表operationlog更名为operationlog_yyyy-mm-dd; 3)将表operationlog_temp更名为operatio…
我们都知道windows的计划任务和linux的crontab都是用来实现一些周期性的任务和固定时间须要运行的任务. 在mysql5.1之前我们完毕数据库的周期性操作都必须借助这些操作系统实现. 在mysql5.1及其之后的版本号添加了计划任务的功能(mysql事件调度器Event Scheduler).     事件调度器是定时触发运行的.在这个角度上也能够称作是"暂时的触发器". 触发器仅仅是针对某个表产生的事件运行一些语句.而事件调度器则是在某一个(间 隔)时间运行一些语句.事件…
一.使用命令行创建存储过程的步骤 :参数详情参考 https://www.mysqlzh.com/ 1.模板  delimiter $$ # 设置分隔符为 '$$' ,mysql默认的语句分隔符为 ';' ,这样在后续的 create 到 end 这段代码都会看成是一条语句来执行 CREATE PROCEDURE 存储过程名称(你的参数可选) BEGIN # 开始 // 要写的code // ... END$$ # 结束 DELIMITER ; #将语句的结束符号恢复为分号 注意,创建存储过程的…
一.存储过程     迄今为止,使用的大多数 SQL语句都是针对一个或多个表的单条语句.并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成.例如,考虑以下的情形.         1. 为了处理订单,需要核对以保证库存中有相应的物品.         2. 如果库存有物品,这些物品需要预定以便不将它们再卖给别的人,并且要减少可用的物品数量以反映正确的库存量.         3.库存中没有的物品需要订购,这需要与供应商进行某种交互.         4. 关于哪些物品入库(并且可…
mysql中的事件调度器可以定时对数据库增加,删除和执行操作,相当于数据库中的临时触发器,与Linux系统中的执行计划任务一样,这样就可以大大降低工作量. 1.开启事件调度器 [root@node1 ~]# vim /usr/my.cnf         --在配置文件中加入以下语句启用调度器 event_scheduler=1 [root@node1 ~]# /etc/init.d/mysql restart ERROR! MySQL server PID file could not be…
来源:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html MySQL的存储过程 2. 关于MySQL的存储过程存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣.好在MySQL 5.0终于开始已经支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性.3. MySQL存储过程的创建 (1). 格式MySQL存储过程创建的格式:CREATE PROCED…