Mysql 重复

Mysql Duplicates

我想避免数据库中的重复条目。

  1. 在 php 中,我在插入之前检查记录是否存在。
$lead = $CI->db->get_where(db_prefix(). 'leads', ['fbid' => $sender]);
if ($lead->num_rows() == 0) {
    $CI->social_model->create($sender);
}
  1. 在 mysql 中,我将 UNIQUE 参数设置为 fbid。

问题是 facebook 有时会同时发送相同的查询,因此我的 php 检查失败。我想知道是否有任何方法可以避免在 mysql 端重复发送同时发送的查询。 (或欢迎任何其他方式)

您的问题是,您在 fbidid 列上有一个唯一键。因此,当您将新行插入 table 时,您将得到 idfbid 的唯一组合,因为当您再次插入相同的数据时,您会得到一个更新的 id值,因此满足约束条件。

你的约束应该只包含 fbid

或者,当您想要 fbid 的多个条目时,您应该查看 api 的响应中是否有任何其他值可用于约束(例如时间戳)