繁体   English   中英

如何在MySQL中重置auto_increment值

[英]How to Reset auto_increment value in MySQL

即使参考其他帖子进行更改后,我也无法重置auto_increment值

我试过了 :

ALTER TABLE tablename AUTO_INCREMENT = 101

ALTER TABLE users AUTO_INCREMENT=1001;

或者,如果您还没有添加ID列,也可以添加它

ALTER TABLE users ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
ADD INDEX (id);

但仍然无法正常工作

检查一下:

mysql> ALTER TABLE table2 ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> ADD INDEX (id);
Query OK, 5 rows affected (0.17 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from table2;
+----------------+----+
| name           | id |
+----------------+----+
| Abhilash Gupta |  1 |
| John           |  2 |
| Peter          |  3 |
| Clarke         |  4 |
| Virat          |  5 |
+----------------+----+
5 rows in set (0.00 sec)

mysql> ALTER TABLE table2 AUTO_INCREMENT=101;
Query OK, 5 rows affected (0.25 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from table2;
+----------------+----+
| name           | id |
+----------------+----+
| Abhilash Gupta |  1 |
| John           |  2 |
| Peter          |  3 |
| Clarke         |  4 |
| Virat          |  5 |
+----------------+----+
5 rows in set (0.00 sec)

mysql>

我希望id的值从101开始。在此先感谢

如果要将现有ID更改为从101开始,请使用:

UPDATE table2
SET id = id + 100;

auto_increment设置用于要添加的下一行的ID,它对现有行没有影响。

点击此链接以参考AUTO INCREMENT

现在您正在做什么,我认为是正确的,但是更改没有反映出来,因为您没有尝试向数据库输入新行。 Alter命令更改AUTO INCREMENTS值,但该值只会在下一次插入数据库时​​反映出来。 它不会影响表中已经存在的数据。 尝试在数据库中输入新行,并检查ID值是否更改。
如果不是,则在输入该行后发布输出。

这是应该写的

cur.execute('''ALTER TABLE tablename AUTO_INCREMENT=0''')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM