问题描述:
1、MYSQL的计划事件默认是关闭的,我已经开启;
2、存储过程无参数,名为proc_create_table_daily,按日期来创建表,已确保正确,单独执行的时候表是创建了;
3、事件创建SQL代码如下:
/*每天的零点创建日表*/
DELIMITER $$
DROP EVENT IF EXISTS event_create_table_daily;
CREATE EVENT event_create_table_daily
ON SCHEDULE EVERY 1 DAY
STARTS '2011-07-01 00:00:00'
ENABLE
DO
BEGIN
CALL proc_create_table_daily();
END
$$
DELIMITER ;
现问题是:proc_create_daily没有执行创建表!!
请指点,谢谢!
1、MYSQL的计划事件默认是关闭的,我已经开启;
2、存储过程无参数,名为proc_create_table_daily,按日期来创建表,已确保正确,单独执行的时候表是创建了;
3、事件创建SQL代码如下:
/*每天的零点创建日表*/
DELIMITER $$
DROP EVENT IF EXISTS event_create_table_daily;
CREATE EVENT event_create_table_daily
ON SCHEDULE EVERY 1 DAY
STARTS '2011-07-01 00:00:00'
ENABLE
DO
BEGIN
CALL proc_create_table_daily();
END
$$
DELIMITER ;
现问题是:proc_create_daily没有执行创建表!!
请指点,谢谢!
proc_create_daily代码是什么
delimiter $$
DROP PROCEDURE IF EXISTS proc_create_table_daily;
CREATE PROCEDURE proc_create_table_daily()
BEGIN
declare str_date varchar(16);
SET str_date = date_format(now(),"%Y%m%d");SET @sqlcmd1 = concat('create table tb_data_freeze_',str_date,'(data_dt datetime,
user_id varchar(32),dtu_addr varchar(16),meter_addr varchar(16),refrigeration float(10,2),
heat float(10,2),heat_power float(10,2),flow_rate float(10,2),total_flow float(10,2),
supply_temp float(10,2),back_temp float(10,2),total_time int(12),real_time datetime,back_vch varchar(64),
PRIMARY KEY (data_dt,dtu_addr,meter_addr));');
PREPARE p1 FROM @sqlcmd1;
EXECUTE p1;
DEALLOCATE PREPARE p1;SET @sqlcmd2 = concat('create table tb_data_real_',str_date,'(data_dt datetime,
user_id varchar(32),dtu_addr varchar(16),meter_addr varchar(16),refrigeration float(10,2),
heat float(10,2),heat_power float(10,2),flow_rate float(10,2),total_flow float(10,2),
supply_temp float(10,2),back_temp float(10,2),total_time int(12),real_time datetime,back_vch varchar(64),
PRIMARY KEY (data_dt,dtu_addr,meter_addr));');
PREPARE p2 FROM @sqlcmd2;
EXECUTE p2;
DEALLOCATE PREPARE p2;SET @sqlcmd3 = concat('create table tb_data_alarm_',str_date,'(alarm_dt datetime,user_id varchar(32),
dtu_addr varchar(32),meter_addr varchar(16),alarm_item varchar(16),status varchar(64),value float(10,2),
PRIMARY KEY (alarm_dt,dtu_addr,meter_addr));');
PREPARE p3 FROM @sqlcmd3;
EXECUTE p3;
DEALLOCATE PREPARE p3;END
$$
delimiter ;
show variables like 'event%' 看一下 event_scheduler 是ON 还是OFF ?
or
SET GLOBAL event_scheduler = ON;
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
1 row in set (0.00 sec)
并重启MYSQL了,我在想是不是和我手动改操作系统时间为0点0分0秒的原因
STARTS '2011-07-01 10:30:00'看看事件能否运行