Maison >base de données >tutoriel mysql >定时执行MySQL语句的二种方法
linux 中/usr/bin/mysql -uquot;usernamequot; -pquot;passwordquot; dbname --execute=quot;delete from table1;select *
需求:在某些活动结束时,需要在某个时间点及时统计查询游戏数据。
实现:两种方法
一、使用mysql.exe+at/计划任务
D:\mysql\bin\mysql.exe -u"username" -p"password" dbname --execute="delete from table1;select * from table2" >> c:\result.txt
打开指定数据库,并执行了两条sql语句,并将结果导向到c盘的result.txt文件。然后可以使用at 命令和计划任务来定时执行,当然可以再加上ftp命令来将查询结果文件上传到指定机器上。
linux 中
/usr/bin/mysql -u"username" -p"password" dbname --execute="delete from table1;select * from table2" >> /tmp/result
特点:需要开启计划任务。
二、 使用mysql events功能
先开启此功能
set global event_scheduler = 1;
下面的语句就是在指定时间运行定义好的sql语句,,更加详细的用法可以查看mysql帮助文档。
create event test on schedule at timestamp '2009-09-09 09:00:00' do select * from db1.table1 into outfile 'result.txt ';
特点:mysql版本必须是5.1.6以上才支持,同时会对性能可能会造成一定程度的影响。