【发布时间】:2015-07-05 05:15:48
【问题描述】:
我创建了一个抓取脚本,它每小时都会浏览不同的文章并将它们添加到数据库中。然而,在这个数据库表中,我在日期和标题上设置了唯一键,所以它不会一遍又一遍地添加相同的文章。然而,这似乎是一个奇怪的效果,即使没有添加新闻,新闻自动增量 id 上的 id 似乎也会增加?我该如何解决这个问题?
$insert_news = $con->prepare("INSERT IGNORE INTO news (`title`, `url`, `image_url`, `date`, `news_text`, `website_id`) VALUES (?, ?, ?, ?, ?, 2)");
$insert_news->bind_param("sssss", $hltv_title, $hltv_link, $hltv_img, $hltv_date, $full_text_dont);
$insert_news->execute();
【问题讨论】:
-
当插入失败时,
auto_increment被丢弃。 MySQL 实际上尝试使用它,但失败了,然后忘记了数字(简单地说)。即使它看起来很糟糕或违反直觉,它实际上是想要的。数据库在并发环境中工作,这个数字“下降”是有原因的。基本上你无法修复它,因为auto_increment不提供序列号。它只是提供下一个更高的数字。如果你保持原样,不会有任何不好的事情发生。