我是数据库的新手,所以我有这个表,我想写一些每天添加或更改行的脚本。最好是当一天变化时。
MySQL-Workbench显然只支持lua& python脚本,我不知道语法。
我正在寻找像
这样的东西onDaychange(){
SQL-query(INSERT ...)
SQL-query(UPDATE ...)
}
否则我必须在服务器上运行永久的c#或java程序。
答案 0 :(得分:1)
您需要MySQL event
按时运行
您可以根据需要安排调用存储过程。
示例:
delimiter //
drop event if exists event_scheduling_sample;
create event if not exists event_scheduling_sample
-- on schedule every 86400 second starts 00:00:00
-- at timestamp( adddate( current_date, 1 ),'00:00:00' )
-- on schedule every 1 day starts current_timestamp ends current_timestamp + interval '5' day
-- on schedule every 1 day starts current_timestamp ends timestamp( current_date,'23:59:59' )
on schedule every 1 day starts timestamp( current_date + 1, '00:00:01' )
comment 'event scheduling sample'
do
call db_name.procedure_name();
;
//
delimiter ;
事件安排程序的默认状态为DISABLED 您需要通过以下任何语句启用它。
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
当事件调度程序为ON时,事件调度程序线程在SHOW PROCESSLIST
的输出中列为守护程序进程,其状态如下所示:
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
Id: 1
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: show processlist
*************************** 2. row ***************************
Id: 2
User: event_scheduler
Host: localhost
db: NULL
Command: Daemon
Time: 3
State: Waiting for next activation
Info: NULL
2 rows in set (0.00 sec)
将事件调度程序设置为ON后,您会看到它正常工作。
答案 1 :(得分:0)
您可以将Cron Job用于此脚本。 Cron是类Unix计算机操作系统中基于时间的作业调度程序。 cron使用户能够安排作业(命令或shell脚本)在特定时间或日期定期运行。它通常用于自动化系统维护或管理,但其通用性意味着它可用于其他目的,例如连接到Internet
Cron档案
mysql_query("INSERT INTO table (`text`,`date`) VALUES (testing','2012-6-25')");
//According to Date Condtion
mysql_query("UPDATE table SET `text`='testing2',`date`='2012-06-28'");