每天在特定时间创建活动

时间:2015-09-05 21:58:29

标签: events mysql-event

第一个事件会删除表中的所有行:

CREATE DEFINER=`frontdes_user`@`localhost` EVENT `DELETE_flux_receptie` ON SCHEDULE EVERY 1 DAY STARTS '2015-09-06 00:00:00' ON COMPLETION PRESERVE ENABLE DO DELETE FROM `flux_receptie`

第二个事件会从同一个表中删除id列:

CREATE DEFINER=`frontdes_user`@`localhost` EVENT `delete_id` ON SCHEDULE EVERY 1 DAY STARTS '2015-09-06 00:00:00' ON COMPLETION PRESERVE ENABLE DO ALTER TABLE `flux_receptie` DROP `id`

第三个事件将id列添加到同一个表中:

CREATE DEFINER=`frontdes_user`@`localhost` EVENT `add_id` ON SCHEDULE EVERY 1 DAY STARTS '2015-09-06 00:00:00' ON COMPLETION PRESERVE ENABLE DO ALTER TABLE `flux_receptie` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`)

我希望每天都能运行这些事件: 第一天每天06:30,第二天每天06:35,第三天每天06:40。 任何人都可以按正确的时间表帮助我吗?最好的问候,波格丹。

1 个答案:

答案 0 :(得分:1)

如果您可以访问您的计算机,则可以使用cronJob,crontab计划的基本格式包含6个字段,放在一行中并用空格分隔,格式如下:

minute hour day month day-of-week command-line-to-execute

首先创建一个脚本:

第一个脚本

#!/bin/bash

mysql --user=[username] --password=[password] --database=[db name] --execute="CREATE DEFINER=`frontdes_user`@`localhost` EVENT `DELETE_flux_receptie` ON SCHEDULE EVERY 1 DAY STARTS '2015-09-06 00:00:00' ON COMPLETION PRESERVE ENABLE DO DELETE FROM `flux_receptie`"

第二个脚本

#!/bin/bash

mysql --user=[username] --password=[password] --database=[db name] --execute="CREATE DEFINER=`frontdes_user`@`localhost` EVENT `delete_id` ON SCHEDULE EVERY 1 DAY STARTS '2015-09-06 00:00:00' ON COMPLETION PRESERVE ENABLE DO ALTER TABLE `flux_receptie` DROP `id`"

第三个脚本

#!/bin/bash

mysql --user=[username] --password=[password] --database=[db name] --execute="ALTER TABLE `flux_receptie` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`)"

然后使用crontab -e

创建3个cron

crontab -e

30 6 * * * / path / of / scriptOne

35 6 * * * / path / of / scriptTwo

40 6 * * * / path / of / scriptThree