关于数据库id自动增长的问题

本文介绍了一种使用PHP操作MySQL的方法,使已删除部分数据的表能够重新按ID自动增长排序,确保ID的连续性,并附带了一个具体的实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于数据库id自动增长的问题,一般来说,我们设置数据库的时候会把id设置成auto_increment(即自动增长的)。但是在我们插入数据后,再对其中的数据进行删除后,id就变得不连续了。那么我们怎么对有删除数据的数据使其重新按照id自动增长排序呢? 下面是一种PHP操作MySQL使得数据重新按照id自动增长的程序。
<?php

$hostname = "localhost";
$database = "mydatabase";
$username = "root";
$password = "123456";
$connect = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); 

$no = 1;

function change_id($id)
{
	global $no; 

	$sql = 'update my_table set id = ' . $no . ' where id = ' . $id;
	mysql_query($sql);
	$no = $no + 1;
}

mysql_select_db($database, $connect);
$query_Record = "SELECT id FROM my_table ORDER BY id ASC";
$all_Record = mysql_query($query_Record);
$row_Record = mysql_fetch_assoc($all_Record);

do {
	change_id( $row_Record['id'] );
} while ($row_Record = mysql_fetch_assoc($all_Record));

// 重新设置id自增起点
mysql_query('alter table my_bable AUTO_INCREMENT = ' . $no);

echo 'ok';

?>
要是还要更新其他的表,使得更新后的id对应,可在函数change_id中进行各种操作。  

转载于:https://www.cnblogs.com/gxldan/archive/2013/01/13/4066884.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值