我在mysql phpmyadmin中创建了一个表,我给了“id”自动增加,并为图像创建了一个列,这个列不应该是同一个id的相同图像,这就是为什么我将它更改为唯一。 现在的问题是id已经自动赋值,但是如果我将触发我的插入查询,它的插入ID为exa:-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')");
我无法理解这里的问题是什么。
答案 0 :(得分: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')");