我知道LOAD DATA INFILE
命令——但是,这要求我们已经有了带有适当列的表。当我有数百列的 csv 时,手动键入所有列定义是不可行的。
还有一个网站允许上传 .csv 文件,它将生成适当的 MySQLCREATE TABLE
和INSERT
代码。但是,1)这不容易重现,2)有一些怪癖,例如BIT
-type 数据必须修改,以便它b'1'
像b
.
有没有办法以编程方式将 csv 导入 SQL,例如使用 R、Python、Java 等?我从事社会科学工作,我们经常需要下载一些需要导入的 csv 文件。
您想要的几乎是不可能的,没有人知道您是否要将 '1' 作为字符串、n 十进制整数、base-2 整数、十六进制整数、浮点数、blob、“布尔值”导入。 ..
您可以尝试启发式程序,或者将它们全部导入为字符串并运行分析程序,例如
SELECT... ANALYZE TABLE();
. 如果 csv 将数据类型作为信息,那会更容易。关于基于列列表创建表(带字符)的程序,这更容易找到(GUI)和程序。
这里以 bash为例。