【问题标题】:Mysql database autoincreament id not increases in ascending orderMysql数据库自动增量ID不按升序增加
【发布时间】:2015-07-17 10:21:27
【问题描述】:

我在 mysql phpmyadmin 中创建了一个表,并且我为“id”提供了自动增量,并为图像创建了另一列,这不应该是相同 id 的相同图像,这就是我将其更改为唯一的原因。 现在的问题是 id 已自动增加,但如果我将触发我的插入查询,它会为 exa:-1 到 10 插入 id 号,下一次我将再次触发我的查询,它的插入 id 号如:-40 到 50 现在它直接取1000到1010等等。 我正在使用简单的查询:-

mysqli_query($con,"insert into Wheel_Place_Images(place_image_url,creation_date,last_modification_date,status)values('$image_url','$date','$date','1')");

我不明白这里有什么问题。

【问题讨论】:

  • place_id是自动递增的唯一id吗?
  • yes Epodax,place_id 是具有自动增量的primary_key。
  • 如果你使用 auto_increment,你不需要插入 id 本身——这会自动发生。这不就是“place_I'd”吗?
  • 如果这是一个主键,那么你不应该依赖它的值。听起来自动增量正在工作,但有差距。如果使用像 INSERT ... IGNORE DUPLICATE 之类的命令 - 当检测到重复时,这些总是会导致间隙。您也不应该手动插入值 - 您从哪里获得要添加的值?
  • 嘿 PaulF,实际上我是从 google api 获取这些图像的。

标签: php mysql unique


【解决方案1】:

您可以使用以下代码在 MySQL 中重置或设置初始值自动递增。

使用这个:

ALTER TABLE `Wheel_Place_Images` AUTO_INCREMENT=1001;

或者如果您还没有添加 id 列,也添加它

ALTER TABLE `Wheel_Place_Images` ADD place_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
ADD INDEX (place_id);

您无需手动插入place_id

mysqli_query($con,"INSERT INTO `Wheel_Place_Images`
                     (place_image_url,creation_date,last_modification_date,status)
                     Values ('$image_url','$date','$date','1')");

更新答案

我有一个非常简单的技巧来避免自动递增的 id 之间的差距。

只需从 id 字段中获取最大高值,然后将其加 1。

$row = mysqli_query($con, "SELECT MAX(place_id) AS `maxid` FROM `Wheel_Place_Images`");
if ($row) {
    $maxid = $row->maxid + 1; 
}

然后

mysqli_query($con,"INSERT INTO `Wheel_Place_Images`
                     (place_id, place_image_url,creation_date,last_modification_date,status)
                     Values ('$maxid','$image_url','$date','$date','1')");

【讨论】:

  • 嘿哈桑,谢谢你的回复,实际上我误写了这里,但实际上它是自动插入的。我已经更新了我的代码,现在检查一下,对不起。
  • @Neha 如果你觉得我的回答有用,你可以接受,
  • 我接受了哈桑..但是你有什么解决办法吗??
  • @Neha 你想在place_image_url 字段中保存相同的插入ID吗?
  • No Hassan,在 "place_image_url" 中,这里这个字段是唯一的,我必须插入图片的 url,问题是 place_id 是自动递增的,它需要像 1 到 10 这样的间隙数字,然后直接从 50 到60这​​样的,应该是正确的编号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 2014-11-18
  • 2020-06-17
  • 1970-01-01
  • 2016-07-23
  • 2016-10-16
  • 2015-12-28
相关资源
最近更新 更多