在不指定sql脚本中的列名的情况下,将csv文件导入mySQL

时间:2019-02-04 02:38:35

标签: mysql sql

有没有一种方法可以在外壳程序中运行sql脚本而无需指定所有列名的情况下,将CSV文件导入mysql中的表?目的是将第一行中的元素用作每列名称。

这样做的合理性是,如果我有很多列,我不想自己手动列出这些字段。警告是字段的未知日期类型,因此我认为必须(1)从csv文件自动检测和分配数据类型,或者(2)天真的VARCHAR分配。通常,人们通过指定所有列名称来创建表,然后导入数据。

到目前为止,我已经尝试过但没有解决的补救措施是:mysqlimport和csvkit:csvsql

我不是在寻找MySQL的替代品,而是在MySQL中寻找解决方案。如果那是不可能的,那么使用python解决方案将是第二优选的解决方案。

1 个答案:

答案 0 :(得分:1)

假设您正在寻找替代“ mysql”的脚本处理器,那么您实际上是在寻求建议,偏好或意见。这些问题不一定有真正正确的答案,因此很可能会被否决或删除。

但是,您还有一个问题“这不是必需的功能吗?”很有趣。可能会回答另一个问题:如果您不知道导入的表的列名,您将如何处理它?<​​/ p>

尽管如此,这是您可能要考虑的替代脚本处理器:一个名为execsql.py的Python程序,可从PyPI(https://pypi.org/project/execsql/)获得。它的IMPORT元命令将导入CSV文件,并使用适当的数据类型自动创建目标表。免责声明:我写的。