`
tcspecial
  • 浏览: 896199 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mysql event

阅读更多

 

fdate按日期分区

create table myevent
(
	fdate int(11) not null default '0',
	appid int,
	primary key(fdate)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY RANGE(TO_DAYS(fdate))
(PARTITION p20190217 VALUES LESS THAN (TO_DAYS('2019-02-17')) ENGINE = InnoDB,
PARTITION p20190218 VALUES LESS THAN (TO_DAYS('2019-02-18')) ENGINE = InnoDB);

 如果fdate非date类型,会报错:

 1486 - Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed

 

添加或删除分区 

ALTER TABLE myevent ADD PARTITION (PARTITION p20190219 VALUES LESS THAN (TO_DAYS('20190219')));
ALTER TABLE myevent DROP PARTITION p20190219;

 

查看使用分区数

explain PARTITIONS select * from myevent;

+----+-------------+---------+-------------------------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table   | partitions                    | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra |
+----+-------------+---------+-------------------------------+------+---------------+------+---------+------+------+----------+-------+
|  1 | SIMPLE      | myevent | p20190217,p20190218,p20190219 | ALL  | NULL          | NULL | NULL    | NULL |    1 |      100 | NULL  |
+----+-------------+---------+-------------------------------+------+---------------+------+---------+------+------+----------+-------+

 

判断分区是否存在:

SELECT count(1) from INFORMATION_SCHEMA.partitions WHERE TABLE_SCHEMA = schema() 
AND TABLE_NAME='myevent' AND partition_name='p20190220';

   

 

上述分区需要预配置,可以用event来实现每天自动创建分区。

开启event

SHOW VARIABLES LIKE '%event_sche%';
SET GLOBAL event_scheduler = 1;

  

创建定时任务

DROP EVENT if exists myevent_auto_partition;
DELIMITER  $$
CREATE EVENT myevent_auto_partition
ON SCHEDULE 
    EVERY 1 DAY
    STARTS '2019-03-01 00:00:00'
    COMMENT '天表每天自动增加分区'
   DO
BEGIN
set @c_table='myevent';
set @c_day=curdate();
set @p_c_day=DATE_FORMAT(NOW(), '%Y%m%d');
set @p_name=concat('p', @p_c_day);
set @p_sql=concat('ALTER TABLE ', @c_table,' ADD PARTITION (PARTITION ', @p_name,' VALUES LESS THAN (TO_DAYS ("', @c_day, '")))');
SELECT @p_sql;
PREPARE stmt from @p_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END  $$
DELIMITER ;

 

查看计划任务

show events;

drop event if exists myevent_auto_partition;

 

查询所有事件sql

select * from mysql.event;

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    mysql event脚本

    mysql event脚本

    解决mysql failed to open table mysql.event

    解决mysql failed to open table mysql.event

    浅谈MySQL event 计划任务

    下面小编就为大家带来一篇浅谈MySQL event 计划任务。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    mysql event scheduler 使用笔记

    NULL 博文链接:https://chembo.iteye.com/blog/896941

    MySQL Event Scheduler(事件调度器)

    一、概述 事件调度器是在 MySQL 5.1 中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功>能。例如,Linux 中的 crontabe 只能精确到每分钟执行一次,而 MySQL ...

    mysql Event Scheduler: Failed to open table mysql.event

    主要介绍了mysql Event Scheduler: Failed to open table mysql.event,需要的朋友可以参考下

    db-mysql-event

    mysql event scheduler 使用详解,含全局设置、创建event、修改event、删除event及相应的example,测试环境 mysql ver 14.14 distrib 5.7.26

    老生常谈mysql event事件调度器(必看篇)

    下面小编就为大家带来一篇老生常谈mysql event事件调度器(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    带你了解MySQL中的事件调度器EVENT

    MySQL中的事件调度器,EVENT,也叫定时任务,类似于Unix crontab或Windows任务调度程序。 EVENT由其名称和所在的schema唯一标识。 EVENT根据计划执行特定操作。操作由SQL语句组成,语句可以是BEGIN…END语句块。...

    详解MySQL用事件调度器Event Scheduler创建定时任务

    在MySql中,创建一个新的调度器使用CREATE EVENT,其语法规则如下: CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] ...

    mysql中event事件使用详解.docx

    Event即事件,也是一种数据库对象,又叫时间触发器或者事件调度器,与triggers的事件触发不同,tiggers会因为update、delete、insert等事件触发,而event类似与linux crontab计划任务,用于时间触发,当到了设定执行...

    MySQL binlog中的事件类型详解

    MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型。 首先,看看源码中定义的事件类型 源码位置:mysql-...

    MySQL计划任务(事件调度器) Event Scheduler介绍

    MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能

    mysql中event的用法详解

    本篇文章是对mysql中event的用法进行了详细的分析介绍,需要的朋友参考下

    [数据库] Navicat for MySQL事件Event实现数据每日定期操作1

    (1).每天凌晨12点对数据库进行定时备份,结算和汇总 (2).每天凌晨2点删除数据库前三天的数据 (3).插入某个数据超过一定时间改变某个值的状态,比如预警系

    《深入理解MySQL主从原理32讲》推荐篇

    《深入理解MySQL主从原理32讲》专栏包含GTID部分、Event部分、主库部分、从库部分四大块来详细讲解主从原理。希望能帮助读者朋友们解决关于主从同步中的一些疑问。八怪写作风格很是严谨,几乎每篇都是从源码入手去...

Global site tag (gtag.js) - Google Analytics