吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1873|回复: 41
收起左侧

[求助] tp6批量插入数据,如何解决重复数据问题?

[复制链接]
comcn 发表于 2022-8-26 14:22
本帖最后由 comcn 于 2022-8-27 08:51 编辑

比如我的mysql已经存在  1,2,3,4,5这些数据,ID为主键
需要根据接口获取新数据插入数据库
现在接口的新数据是 1,2,3,4,5,6,7,8 ,直接插入$res = Db::name('table')->insertAll($data);

那么数据库的数据就变成了1,2,3,4,5,1,2,3,4,5,6,7,8

请问如何解决这种问题呢?
tp6的replace不会用,插入还是会重复
----------------------------------------
----------------------------------------
----------------------------------------
以上问题已解决:在接口获取的数据,加入id主键。我设置的id全部为1,然后插入数据库不会有重复了。

新的问题:
我把数据库数据全部删除,在重新插入,只插入了data数据最后一条
比如接口获取到50个数据,只插入了第50条,前49条都没有插入数据库,这个是哪里的原因?
因为我数据库设置了id自动加1,id只要不是空值,应该都可以插入吧


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ainkate 发表于 2022-8-26 14:32
redis可以解决
 楼主| comcn 发表于 2022-8-26 14:33
iawyxkdn8 发表于 2022-8-26 14:34
ainkate 发表于 2022-8-26 14:36
comcn 发表于 2022-8-26 14:33
谢谢,换数据库太麻烦了,想直接从tp6入手解决

先百度一下什么是redis
 楼主| comcn 发表于 2022-8-26 14:37
ainkate 发表于 2022-8-26 14:36
先百度一下什么是redis

我的意思是redis太麻烦了
Do_zh 发表于 2022-8-26 14:39
搞个唯一索引。
GstYon 发表于 2022-8-26 15:00
如果数据不是很多的话,可以插入 直接先批量查询一次数据库,筛出重复数据,在插入

数据量大的话 可以借助redis等来先进行筛选
 楼主| comcn 发表于 2022-8-26 15:01
GstYon 发表于 2022-8-26 15:00
如果数据不是很多的话,可以插入 直接先批量查询一次数据库,筛出重复数据,在插入

数据量大的话 可以借 ...

不多,就几十条数据,
直接先批量查询一次数据库,筛出重复数据,在插入
这个能给出sql语句吗
lxxtoday 发表于 2022-8-26 15:04
一种是可以循环检测新数据中的每条记录在数据库中是否存在,存在可以更新或跳过,不存在就插入。
另一种可以查询出数据库所有记录,用新数据比较,保留不重复数据,一次性插入。
基本是这个思路,具体代码要根据数据类型、数据格式、新数据和现有数据量之类的灵活操作了,参考TP手册,多试试
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表