Mysql 重复
Mysql Duplicates
我想避免数据库中的重复条目。
- 在 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
列上有一个唯一键。因此,当您将新行插入 table 时,您将得到 id
和 fbid
的唯一组合,因为当您再次插入相同的数据时,您会得到一个更新的 id
值,因此满足约束条件。
你的约束应该只包含 fbid
或者,当您想要 fbid
的多个条目时,您应该查看 api 的响应中是否有任何其他值可用于约束(例如时间戳)
我想避免数据库中的重复条目。
- 在 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
列上有一个唯一键。因此,当您将新行插入 table 时,您将得到 id
和 fbid
的唯一组合,因为当您再次插入相同的数据时,您会得到一个更新的 id
值,因此满足约束条件。
你的约束应该只包含 fbid
或者,当您想要 fbid
的多个条目时,您应该查看 api 的响应中是否有任何其他值可用于约束(例如时间戳)