即使在参考其他帖子后进行更改
,我也无法重置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开始。 提前致谢
答案 0 :(得分:2)
如果要将现有ID更改为从101
开始,请使用:
UPDATE table2
SET id = id + 100;
auto_increment
设置用于添加下一行的ID,它对现有行没有影响。
答案 1 :(得分:0)
请点击此链接以参考AUTO INCREMENT
现在你正在做的是我认为是正确的,但是由于你没有尝试向数据库输入新行,所以没有反映出这些变化。 Alter命令更改AUTO INCREMENTS值,但这只会反映在数据库的下一个插入中。它不会影响TABLE中已存在的数据。尝试在数据库中输入新行并检查ID值是否发生变化 如果没有,则在输入该行后发布输出。
答案 2 :(得分:0)
这就是应该写的方式
cur.execute('''ALTER TABLE tablename AUTO_INCREMENT=0''')