我可以指示 mysql 将列 header 作为 CSV 导出的第一行而不使用其他脚本语言吗?

Can I direct mysql to include the column header as the first line of a CSV export without using other scripting languages?

我正在将内容从一个旧的专有数据库迁移到一个新的更结构化的解决方案中。新解决方案需要 CSV 文件。对于批准流程——由人眼检查——我需要将列名称作为此 CSV 文件中的第一行。

select b.Title as Title, 
b.listinguuid as UID,
.
.
.
FROM b as biblioRecord
-- more join magic
INTO OUTFILE '/tmp/biblio-import.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

鉴于上面的代码片段形成了一个更大的语句,我可以指示 mysql 将列 header 作为第一行吗?

理查德

查看了 MySQL 数据输出文档,您所问的内容看起来不太可能。

您有一些数据验证选项。

假设您具有某种形式的脚本知识,您 Amy 能够创建一个内部存储过程来输出整个 table(包括列标题)。如果没记错,脚本语言基于 Java(不是 Javascript)。

但是为什么不询问是否可以通过 Web 界面完成验证,那么有大量工具(php 我的管理员想到了)可用于查看 tables(带有 header 信息)。 PhP myadmin 甚至可以为您输出 CSV 格式的 tables :)

根据需要验证的数据量以及约束条件,更好的解决方案可能是创建一组专用的验证脚本。作为大型项目的一部分,这可能是您无论如何都需要的东西,例如,在系统升级后它可能是 运行。你应该和客户谈谈。事实上,脚本将是确认所有内容都已正确传输的更好方法,因为它可以直接比较旧数据库和新数据库,并报告任何异常结果。

其他可能性:

您的新数据库结构有 XML 模式吗?如果这样做,您可以将数据转储到 XML 数据库中,然后在 Xl 之类的东西中查看它,或者使用 xslt 在网页中显示它。

我确定还有其他可能性,但它们都需要一些工作才能达到您想要的最终结果。它们都将更耗时,但会产生其他潜在有用的连锁效应,需要阐明并呈现给客户。

就个人而言,如果您有大量数据,请使用某种形式的验证脚本,人眼会厌倦查看大量数据行,而疲倦的眼睛会混淆大脑并导致错误。