Mysql 数据库自增id不按升序增加

Mysql database autoincreament id not increases in ascending order

我在 mysql phpmyadmin 中创建了一个 table,我为 "id" 提供了自动增量,并为图像创建了另外一列,这不应该是相同 ID 的相同图像,这就是为什么我已将其更改为唯一。 现在的问题是 id 已经自动增加了,但是如果我触发我的插入查询,它会插入 exa 的 id 号:-1 到 10,下次我会再次触发我的查询,它的插入 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')");

我不明白这是什么问题。

您可以使用以下代码在 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')");