编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

MYSQL自动导出某表数据到EXCEL的方案

wxchong 2024-08-18 00:33:03 开源技术 13 ℃ 0 评论

由于特殊要求,客户要求,将数据库中的某些数据,每天指定时间自动导出到指定位置。方便其它业务的使用。

首先说下设计思路:因为需求比较简单,打算用MYSQL数据库的函数+事件功能完成。

首先,定义各一个导出EXCEL的函数,因为本函数需要每24小时重复执行,导出文件就采用年月日时分秒命名,以区分每天的导出记录。

示例代码如下:

BEGIN

-- SET @SqlScript= CONCAT("SELECT * INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/", DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), ".xls' CHARACTER SET gbk FROM `measurement_data_skfer` ;");
-- NEW 增加自定义表头,保存24小时内的数据
SET @SqlScript= CONCAT("SELECT 'ID', '工单号', '设备号', '钢丝', '规格值', '测量值', '结果', '皮带', '规格值', '测量值', '结果','时间' UNION ALL SELECT * FROM `measurement_data_skfer` WHERE Time >=(NOW() - interval 24 hour)
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/", DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), ".xls' CHARACTER SET gbk ;");

PREPARE Sql_Text FROM @SqlScript;

EXECUTE Sql_Text;

END

然后,定义一个事件,事件的定义代码:

call 函数名

事件定义好计划的规则,样例见下图:


备注:下面为开启MYSQL的事件计划的相关说明资料。

通过下列语句查询event是否开启

show variables like '%sche%';

通过执行下列语句,来开启event_scheduler

set global event_scheduler =1;

还有一种方法开启

set global event_scheduler=on;

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表