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')");
我在 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')");