V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
elone
V2EX  ›  问与答

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

  •  
  •   elone · 2017-07-31 23:25:01 +08:00 · 3070 次点击
    这是一个创建于 2670 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前有这样的需求,打比方说,在后台指导入用户信息,信息源是一个 excel 表,一行一条数据。

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

    当然我是可以在程序中一条一条的插入的,数据量也不大,顶多一两千。就是想问问有没有更好的办法
    4 条回复    2017-08-01 21:33:45 +08:00
    slysly759
        1
    slysly759  
       2017-08-01 08:51:19 +08:00 via Android   ❤️ 1
    难道这些不是预先审查 然后导入到中间表 然后再转过去么
    elone
        2
    elone  
    OP
       2017-08-01 08:53:45 +08:00 via Android
    @slysly759 怎么审查?
    blankboy
        3
    blankboy  
       2017-08-01 09:08:08 +08:00   ❤️ 2
    工作流应该是:
    1. 先解析 Excel 得到内存对象
    2. 可以对内存对象进行预处理比如处理一些特殊输入,字符和格式的一些问题
    3. 可以像 1 楼说的先插入到临时表里面存下来,也可以直接插入数据库
    4. 如果是放到临时表到时候可以用存储过程之类的进行批量操作,还可以和代码结耦
    PS. 批量插入可以用类似于 bulk copy 之类的
    elone
        4
    elone  
    OP
       2017-08-01 21:33:45 +08:00
    @blankboy #3 感觉你提供的思路,我去学习学习
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1001 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:15 · PVG 06:15 · LAX 14:15 · JFK 17:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.