读取长CSV文件并分成多个表

时间:2017-02-21 18:36:02

标签: php sql database csv

我已经建立了一个包含 6个表的数据库,大致 175个字段。这些字段中大约有130个来自 CSV 的数据。

目前,手持设备会导出此 CSV ,并将其读入电子表格,但会移至数据库。因此,在有人上传 CSV 的前端,它会填充数据库。

问题:

我正在尝试找出逐行打破 CSV 并将某些信息放入某些表格的最佳方法。那可能吗?如果是这样的话?

我希望我可以查询为每个 CSV 字段创建header并将其映射到数据库字段(因为CSV将始终采用相同的顺序)。

2 个答案:

答案 0 :(得分:0)

通过列示例

中的关联数组对其进行标记

ID,名称,颜色 1,JO,红 2,MA,蓝色 3,J,黄

获取一个数组中的第一行,因此只需通过索引比较循环中的值

答案 1 :(得分:0)

我不认为它是一个RBAR问题。如果将文件按原样加载到单个临时表中,则可以为每个表运行以下内容: INSERT INTO destTable(col1,col2) SELECT col1,col2 来自StageTable 在哪里col3 ='标准'

这样,你就可以保持一切基于集合。当然,这取决于所涉及的记录数量,但逐行处理数据和TSQL通常不太适合。 SSIS比TSQL做得好得多。