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

2020-04-27 20:47:23 +08:00
 reaCodes
不是忽略重复记录,是类似把主键字段末尾加 a 再把记录插入到表中
2022 次点击
所在节点    程序员
10 条回复
qiayue
2020-04-27 21:03:53 +08:00
你想要允许重复还是不想要重复?
reaCodes
2020-04-27 21:10:54 +08:00
@qiayue 比如 id = 100,.sql 文件中有 100 这条记录,直接插入肯定不行,所以检查到重复了,插入 100a
lele2019
2020-04-27 21:12:51 +08:00
自已写个导入程序 处理下不就得了。。
reaCodes
2020-04-27 21:36:32 +08:00
@lele2019 有简单的思路么
qiayue
2020-04-27 21:39:09 +08:00
那么你对于 id 其实不关心了
insert 语句的 id 改成 null,就会自动生成新的 id
reaCodes
2020-04-27 21:46:22 +08:00
@qiayue 不是的,需求就是重复 id 末尾加 a 在插入,而且 insert 语句在.sql 文件中,批量执行了,没办法那么细致的操作
feiandxs
2020-04-27 23:31:25 +08:00
@reaCodes 那朋友你这就不是 mysq 的事了。还不如写个导入脚本,哪怕蠢一点在每行导入之前做一次这个判断然后决定要不要修改末尾加 a
fxxwor99LVHTing
2020-04-28 08:31:43 +08:00
数据先处理,再导入。
xiao6zi
2020-04-28 08:45:18 +08:00
我有个方案,可以先将.sql 文件的数据插入同库中的一张新表(应该改下文件里的表名就行) , 插入完成后,在跑程序把两张表合起来
stevenkang
2020-04-28 10:39:22 +08:00
@xiao6zi 附议。
专门一个导入表处理数据,SQL 处理一下,你想加后缀 a 非常容易,还没有任何约束

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

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

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

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

© 2021 V2EX