【发布时间】:2017-12-03 08:27:10
【问题描述】:
我有 10 台机器,我为每台从中收集数据的机器创建了一个表,每台机器的表中都有完全相同的列。列是:order#、timestamp、pv、mv、sp。操作员将在运行机器之前选择 order#,因此我希望 MySQL 数据库在每次输入新的 order# 时将特定于该订单号的行导出到一个名为“order#.csv”的新 CSV 文件。我对数据库很陌生,所以这就是我目前所拥有的:
(SELECT 'Order Number','Timestamp','Mv','Pv','Sp')
union
(select orderNo,Timestamp,Mv,Pv,Sp
from pid
where orderNo = new.orderNo
INTO OUTFILE 'H:/test.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n');
最后,我想要实现的是拥有一个 CSV 文件,其中包含在机器处理一个订单时收集的所有机器数据,无论它处理该订单的时间有多长。这样我就可以在一台机器上为一个订单创建一个 CSV 文件,然后我可以回去查看不同订单的机器性能。 非常感谢您对此的任何帮助!
【问题讨论】:
-
那么,成功了吗?
-
不,它不工作。 “where orderNo = new.orderNo”部分不正确,我仍在研究如何自动生成特定于订单号的文件。
-
如果这是一个触发器,
new.是否类似于SQL中的inserted表?如果是这样,那么您不应该加入基于orderNo的new表吗? -
根据此解决方案,您的 outfile 看起来不错。 *.com/questions/356578/…
-
我刚刚更新了我的问题。我希望数据库将与唯一订单相关联的数据自动导出到新的 CSV 文件中。
标签: mysql sql export-to-csv