【发布时间】:2017-01-19 20:41:34
【问题描述】:
我这几天一直有问题,而且碰上了砖墙。首先,正如标题所示,我一直在努力将 CSV 文件导入 SQL 数据库。
更具体地说,这是通过服务器上的 PHP 脚本和通过 MySQL 进入数据库来完成的。
我目前有大约 30 个 CSV 文件(这个数字预计会增加)每天更新,然后每天触发一次 cron 脚本来更新新数据。它通过LOAD DATA INFILE 加载文件。所有这一切都完美无缺。
问题是: 每个 CSV 文件包含不同的列数。列数介于 50-56 列之间。我存储在这个集体数据库中的数据只需要前 8 列。由于以下问答,我已经知道如何使用@dummy 跳过各个列:How to skip columns in CSV file when importing into MySQL table using LOAD DATA INFILE?
但是,由于列数不同,虚拟计数并不总是相同,我想知道是否有办法从第 1-8 列获取数据,然后忽略所有列数?
【问题讨论】:
-
我现在无法测试,但是只包括要填充的八列呢?
LOAD DATA INFILE 'file.txt' INTO TABLE t1 (c1, c2, c3, c4, c5, c6, c7, c7, c8) -
这实际上工作得很好。以前,我尝试过类似的方法,但正在生成“未知列数”。谢谢
-
很好,请接受答案。