从excel导入数据并插入规范化的sql表

时间:2012-02-27 14:12:51

标签: sql excel import

我有一个包含815条记录的excel文件,其中包括服务名称和费用。 在数据库中,已输入一些记录,因此需要插入剩余的781条记录。

问题是有2个表,一个是departmentalservices,另一个是deptservicedetails。 部门服务表具有服务名称(以及其他内容),并通过名为service_id的列连接到deptservicedetails。 Deptservicedetails是该服务的收费地点(因为有现金和信用费但不用担心)。部门服务具有所有服务名称,但每个服务名称的费用不在详细信息表中。

现在,如果我正常使用该程序来插入费用,它就会花费很长时间。 因此,有没有一种方法可以编写多个插入查询(使用excel公式)或与excel表中的名称匹配的表格中的id,因此我可以通过id将记录插入到详细信息表中。

目前我可以编写一个带有名称和费用的插入查询,但详细信息表需要服务ID,而不是带有插入查询的名称。

希望它的理解和感谢。

1 个答案:

答案 0 :(得分:2)

如果没有更多细节,这在黑暗中就是一点点。

在Excel中,您只需编写一个公式来构建SQL INSERT语句,如果使用INSERT INTO ... SELECT语句,则可以在插入期间获取service_id。 Excel公式如下:

="INSERT INTO deptservicedetails SELECT " & B2 & "," & C2 & ", service_id FROM departmentalservices t2 WHERE t2.service_name = '" & A2 & "';"

细胞B2& C2是您要插入的值(如果它们是字符串,则您需要包含单引号),A2包含您要为其查找ID的名称。

当然你也可以将你的名字/ id数据导出到Excel,执行VLOOKUP()并以这种方式构建你的SQL。

我首先尝试使用一条记录,验证SQL是否正确形成,然后为所有插入运行它。