Mysql - Linux : 在特定日期和时间在 table 中插入一条记录
Mysql - Linux : Insert a record in a table at a specific date and time
我需要在每年 12 月 31 日 11:59pm 的 MySql table 中插入一条记录。
MySql数据库存储在Ubuntu系统中。
我不知道是否可以直接在 MySql 中完成,或者我是否需要在 Ubuntu.
中创建一个 shell 脚本
如果有人对此有想法...
谢谢。
创建一个活动 - CREATE EVENT。
设置间隔 - YEAR,并设置开始的日期和时间。
您可以为此使用调度程序:
https://dev.mysql.com/doc/refman/5.1/en/create-event.html
简单的调度程序事件:
DELIMITER $$
CREATE EVENT my_event
ON SCHEDULE EVERY '1' YEAR
STARTS '2015-12-31 23:59:00'
DO
BEGIN
-- insert your stuff
END$$
DELIMITER ;
我认为您必须通过将 event_scheduler
设置为 ON
来启用它。
最好使用 MySQL 可以使用触发器
将数据插入数据库中的某个事件。
您可以使用一些调度程序框架以编程方式执行此操作
像 Quartz 会调用你的插入 DAO 方法。
最简单的方法是使用 Cron 脚本
job/script 直接连接到您的数据库并插入的地方
指定时间间隔内的数据。
如果我没记错的话,从MySQL5.1开始我们提供了事件调度。
所以,假设 your_db 可用,你可以这样做:
CREATE DATABASE IF NOT EXISTS your_db;
USE your_db;
CREATE TABLE `some_table` (
`ev` varchar(100) NOT NULL,
PRIMARY KEY (`ev`)
);
SET GLOBAL event_scheduler = ON;
CREATE EVENT your_event ON SCHEDULE EVERY 1 MINUTE STARTS '2014-08-20 00:10:00' ON COMPLETION PRESERVE ENABLE
DO
INSERT INTO your_db.some_table (ev) VALUES (CONCAT_WS(' ', 'En Event Occurred at', NOW()));
安排一个简单的事件每 1 分钟发生一次。
如果它有效(在我的 ubuntu 14.04 盒子上有效),那么我想您只需自定义此代码段即可。您可以将 'MINUTE' 更改为 'YEAR'。
如果没有,请告诉我们。
供您参考:
https://dev.mysql.com/doc/refman/5.1/en/events.html
顺便说一句:我不想坚持使用 crontab 脚本...为了配置 crontab,您需要一组不同于访问 mysql 所需的权限。即便如此,在某些场合下它可能仍然是一个不错的选择。
我需要在每年 12 月 31 日 11:59pm 的 MySql table 中插入一条记录。
MySql数据库存储在Ubuntu系统中。
我不知道是否可以直接在 MySql 中完成,或者我是否需要在 Ubuntu.
如果有人对此有想法...
谢谢。
创建一个活动 - CREATE EVENT。 设置间隔 - YEAR,并设置开始的日期和时间。
您可以为此使用调度程序: https://dev.mysql.com/doc/refman/5.1/en/create-event.html
简单的调度程序事件:
DELIMITER $$
CREATE EVENT my_event
ON SCHEDULE EVERY '1' YEAR
STARTS '2015-12-31 23:59:00'
DO
BEGIN
-- insert your stuff
END$$
DELIMITER ;
我认为您必须通过将 event_scheduler
设置为 ON
来启用它。
最好使用 MySQL 可以使用触发器 将数据插入数据库中的某个事件。
您可以使用一些调度程序框架以编程方式执行此操作 像 Quartz 会调用你的插入 DAO 方法。
最简单的方法是使用 Cron 脚本 job/script 直接连接到您的数据库并插入的地方 指定时间间隔内的数据。
如果我没记错的话,从MySQL5.1开始我们提供了事件调度。
所以,假设 your_db 可用,你可以这样做:
CREATE DATABASE IF NOT EXISTS your_db;
USE your_db;
CREATE TABLE `some_table` (
`ev` varchar(100) NOT NULL,
PRIMARY KEY (`ev`)
);
SET GLOBAL event_scheduler = ON;
CREATE EVENT your_event ON SCHEDULE EVERY 1 MINUTE STARTS '2014-08-20 00:10:00' ON COMPLETION PRESERVE ENABLE
DO
INSERT INTO your_db.some_table (ev) VALUES (CONCAT_WS(' ', 'En Event Occurred at', NOW()));
安排一个简单的事件每 1 分钟发生一次。
如果它有效(在我的 ubuntu 14.04 盒子上有效),那么我想您只需自定义此代码段即可。您可以将 'MINUTE' 更改为 'YEAR'。
如果没有,请告诉我们。
供您参考:
https://dev.mysql.com/doc/refman/5.1/en/events.html
顺便说一句:我不想坚持使用 crontab 脚本...为了配置 crontab,您需要一组不同于访问 mysql 所需的权限。即便如此,在某些场合下它可能仍然是一个不错的选择。