有没有一种方法可以在外壳程序中运行sql脚本而无需指定所有列名的情况下,将CSV文件导入mysql中的表?目的是将第一行中的元素用作每列名称。
这样做的合理性是,如果我有很多列,我不想自己手动列出这些字段。警告是字段的未知日期类型,因此我认为必须(1)从csv文件自动检测和分配数据类型,或者(2)天真的VARCHAR分配。通常,人们通过指定所有列名称来创建表,然后导入数据。
到目前为止,我已经尝试过但没有解决的补救措施是:mysqlimport和csvkit:csvsql
我不是在寻找MySQL的替代品,而是在MySQL中寻找解决方案。如果那是不可能的,那么使用python解决方案将是第二优选的解决方案。
答案 0 :(得分:1)
假设您正在寻找替代“ mysql”的脚本处理器,那么您实际上是在寻求建议,偏好或意见。这些问题不一定有真正正确的答案,因此很可能会被否决或删除。
但是,您还有一个问题“这不是必需的功能吗?”很有趣。可能会回答另一个问题:如果您不知道导入的表的列名,您将如何处理它?</ p>
尽管如此,这是您可能要考虑的替代脚本处理器:一个名为execsql.py的Python程序,可从PyPI(https://pypi.org/project/execsql/)获得。它的IMPORT元命令将导入CSV文件,并使用适当的数据类型自动创建目标表。免责声明:我写的。