V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
reaCodes
V2EX  ›  程序员

MySQL 使用 source 导入.sql 数据文件,如何处理主键重复记录?

  •  
  •   reaCodes ·
    zhatlas · 2020-04-27 20:47:23 +08:00 · 2180 次点击
    这是一个创建于 1666 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不是忽略重复记录,是类似把主键字段末尾加 a 再把记录插入到表中
    10 条回复    2020-04-28 10:39:22 +08:00
    qiayue
        1
    qiayue  
       2020-04-27 21:03:53 +08:00
    你想要允许重复还是不想要重复?
    reaCodes
        2
    reaCodes  
    OP
       2020-04-27 21:10:54 +08:00
    @qiayue 比如 id = 100,.sql 文件中有 100 这条记录,直接插入肯定不行,所以检查到重复了,插入 100a
    lele2019
        3
    lele2019  
       2020-04-27 21:12:51 +08:00
    自已写个导入程序 处理下不就得了。。
    reaCodes
        4
    reaCodes  
    OP
       2020-04-27 21:36:32 +08:00
    @lele2019 有简单的思路么
    qiayue
        5
    qiayue  
       2020-04-27 21:39:09 +08:00
    那么你对于 id 其实不关心了
    insert 语句的 id 改成 null,就会自动生成新的 id
    reaCodes
        6
    reaCodes  
    OP
       2020-04-27 21:46:22 +08:00
    @qiayue 不是的,需求就是重复 id 末尾加 a 在插入,而且 insert 语句在.sql 文件中,批量执行了,没办法那么细致的操作
    feiandxs
        7
    feiandxs  
       2020-04-27 23:31:25 +08:00
    @reaCodes 那朋友你这就不是 mysq 的事了。还不如写个导入脚本,哪怕蠢一点在每行导入之前做一次这个判断然后决定要不要修改末尾加 a
    fxxwor99LVHTing
        8
    fxxwor99LVHTing  
       2020-04-28 08:31:43 +08:00
    数据先处理,再导入。
    xiao6zi
        9
    xiao6zi  
       2020-04-28 08:45:18 +08:00 via iPhone
    我有个方案,可以先将.sql 文件的数据插入同库中的一张新表(应该改下文件里的表名就行) , 插入完成后,在跑程序把两张表合起来
    stevenkang
        10
    stevenkang  
       2020-04-28 10:39:22 +08:00
    @xiao6zi 附议。
    专门一个导入表处理数据,SQL 处理一下,你想加后缀 a 非常容易,还没有任何约束
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3137 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 13:46 · PVG 21:46 · LAX 05:46 · JFK 08:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.