elone
V2EX  ›  问与答

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

  •  
  •   elone · Jul 31, 2017 · 3614 views
    This topic created in 3277 days ago, the information mentioned may be changed or developed.
    目前有这样的需求,打比方说,在后台指导入用户信息,信息源是一个 excel 表,一行一条数据。

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

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