管理后台导入 excel 数据批量插入到数据库中,有没有办法判断出哪条插入成功哪条失败?

2017-07-31 23:25:01 +08:00
 elone
目前有这样的需求,打比方说,在后台指导入用户信息,信息源是一个 excel 表,一行一条数据。

然后上传到服务器准备保存到数据库中,有一个问题,我想知道能不能一次性把所有数据插入到数据库中( PG,mysql ),然后数据库会告诉你哪条数据插入成功 ,哪条失败,失败原因是什么(唯一约束)?
不知道 PG \ mysql 有没有这样内建的功能。

当然我是可以在程序中一条一条的插入的,数据量也不大,顶多一两千。就是想问问有没有更好的办法
3073 次点击
所在节点    问与答
4 条回复
slysly759
2017-08-01 08:51:19 +08:00
难道这些不是预先审查 然后导入到中间表 然后再转过去么
elone
2017-08-01 08:53:45 +08:00
@slysly759 怎么审查?
blankboy
2017-08-01 09:08:08 +08:00
工作流应该是:
1. 先解析 Excel 得到内存对象
2. 可以对内存对象进行预处理比如处理一些特殊输入,字符和格式的一些问题
3. 可以像 1 楼说的先插入到临时表里面存下来,也可以直接插入数据库
4. 如果是放到临时表到时候可以用存储过程之类的进行批量操作,还可以和代码结耦
PS. 批量插入可以用类似于 bulk copy 之类的
elone
2017-08-01 21:33:45 +08:00
@blankboy #3 感觉你提供的思路,我去学习学习

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/379406

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX