php - Mysql重复
问题描述
我想避免数据库中的重复条目。
- 在 php 中,我在插入发生之前检查记录是否存在。
$lead = $CI->db->get_where(db_prefix(). 'leads', ['fbid' => $sender]);
if ($lead->num_rows() == 0) {
$CI->social_model->create($sender);
}
- 在 mysql 中,我将 UNIQUE 参数设置为 fbid。
问题是有时 facebook 会同时发送相同的查询,因此我的 php 检查失败。我想知道是否有任何方法可以避免同时发送的查询在 mysql 端出现重复。(或欢迎任何其他方式)
解决方案
您的问题是,您在fbid
和id
列上有一个唯一键。所以当你在表中插入一个新的 Row 时,你有一个唯一的id
and组合fbid
,因为当你再次插入相同的数据时,你会得到一个更新的id
值,所以满足了约束。
您的约束应该只包含fbid
或者,当您需要多个条目时,fbid
您应该查看来自 api 的响应中是否有任何其他值可用于约束(如时间戳)
推荐阅读
- c# - 如何使用 Xamarin 表单保持屏幕顶部不移动
- python-3.x - Python setup.py 改变项目结构
- python-3.x - 重复创建 tensorflow 自定义模型实例并在循环内训练会出错
- python - 微服务架构的 Pyinstaller 支持多个服务到一个可执行文件
- javascript - 我的 Twilio 函数无法在 JSON REST API 中获取报价
- rx-swift - 有没有办法简化数据转换?
- .net-core - 在 C# 中按照 ISO 4217 标准格式化货币
- java - @CreatedDate 注解不适用于 spring-data-elasticsearch
- flutter - 使用 ConcatenatingAudioSource 时获取音频的下一个开始位置
- python - 自动化 Instagram 发布