SQL批量添加数据略谈
很多时候,我们需要把客户的产品添加到数据库,一般来说客户给的都是Excel这种表格数据,而我们平常程序中用的是mysql或者sql server,这样就需要数据导入,对于数据量小的当然可以手动添加,如果数据量过万甚至几十万,那么手动简直就是不可能完成的,这个时候我们就需要写一些辅助程序,这些程序不是给客户用,而是用来导入数据的工具一样.那么我们来结合实际例子来说说怎么开发这样的代码段.
拿到数据,首先就是数据分析,找出数据之间的关系,一般只有一两个表那就容易,多则三个以上就要用草图标记之间关系.
www.2cto.com
这是一个简图,随便画的,太难看了,我们需要给所有的属性表里面产品添加属性,产品表和属性表关联id就是产品id,属性表存储属性分类id和属性值id,属性分类里面存储了颜色,大小,重量,属性值就是颜色大小重量的取值,等字段.我们要做的就是往属性表添加下面的属性,也就是插入颜色id,大小id,重量id,以及各自对应值得id,通过一条sql我们发现没有办法插入,因为我们需要查询数据,把查询的结果作为数据插入,这时候就需要分条插入,颜色,大小,重量三条数据插入,这时候数据变量就只有对应的值,他们的分类只有一个,通过php循环sql插入语句即可,这里用3个循环就可以插入,再插入之前,还需要先把产品id查询出来,做一个循环,在里面插入这三条语句,也就是这里是双重循环,一个大循环里面有6个小循环,三个查询,三个插入,等我们写完后就可以自动插入属性,运行不过几秒就完成了,如果手动的话,那工作量不敢想象,.具体代码就不贴了,项目中用的,就一次导入就不用了.
想说的是sql里面有什么通过values((1,1,),(1,2),(1,3))也可以插入数据,但是要转换格式也是头痛的事情!ok,回家了
来自青竹博客-Yoby