mysql中有个表是从10开始自增得并且有了一些数据,所有数据id改成1开始自增
时间: 2024-03-01 10:54:49 浏览: 140
如果你想要将一个已经存在的表中的所有数据的自增长id改为从1开始自增,可以按照以下步骤进行操作:
1. 首先,需要创建一个新的自增长id列。可以使用下面的语句:
```
ALTER TABLE 表名 ADD 新列名 INT FIRST;
```
这条语句将在表名为"表名"的表中添加一个新的列名为"新列名"的列,类型为INT,并将其放在所有列的最前面。
2. 然后,需要更新该表中的所有数据。可以使用下面的语句:
```
SET @num = 0;
UPDATE 表名 SET 新列名 = @num:=@num+1;
```
这条语句将会将表名为"表名"的表中的新列名为"新列名"的列的值更新为从1开始递增的整数值。
3. 然后,需要删除原来的自增长id列。可以使用下面的语句:
```
ALTER TABLE 表名 DROP 列名;
```
这条语句将删除表名为"表名"的表中的列名为"列名"的列。
4. 最后,需要将新的自增长id列重命名为原来的列名。可以使用下面的语句:
```
ALTER TABLE 表名 CHANGE 新列名 列名 INT AUTO_INCREMENT;
```
这条语句将表名为"表名"的表中的新列名为"新列名"的列修改为列名为"列名",并将其设置为自增长属性。
执行完以上四步操作后,该表中的所有数据的id值就会被修改为从1开始递增的整数值。需要注意的是,在执行这些操作前,最好备份一下该表中的数据,以防止意外情况的发生。
相关问题
四、一张自增表里10条数据,删2条数据,重启mysql数据库,又插入一条数据,此时id是多少?
在 MySQL 中,自增表的自增值是保存在内存中的,重启 MySQL 数据库后会重新加载自增值,因此此时自增表的自增值将会从上次保存的值开始递增。
假设自增表的初始值为 1,插入了 10 条数据,此时自增值为 11。删除 2 条数据后,自增值仍然为 11。重启 MySQL 数据库后,自增值将从 11 开始递增,因此再插入一条数据时,其 id 将为 12。
阅读全文