如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
当前回答
就像这样:
ALTER TABLE tablename AUTO_INCREMENT = value;
参考:13.1.9 ALTER TABLE语句
其他回答
SET @num := 0;
UPDATE your_table SET id = @num := (@num+1);
ALTER TABLE your_table AUTO_INCREMENT =1;
要更新到最新的加号id,请执行以下操作:
ALTER TABLE table_name AUTO_INCREMENT =
(SELECT (id+1) id FROM table_name order by id desc limit 1);
编辑:
SET @latestId = SELECT MAX(id) FROM table_name;
SET @nextId = @latestId + 1;
ALTER TABLE table_name AUTO_INCREMENT = @nextId;
未测试,请在运行前测试*
最适合我的解决方案:
ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED;
COMMIT;
ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT;
COMMIT;
它很快,与InnoDB一起工作,我不需要知道当前的最大值!
这边自动递增计数器将复位,并将从存在的最大值自动启动。
当心TRUNCATE TABLE your_TABLE将删除your_TABLE中的所有内容。
您还可以使用语法TRUNCATE表,如下所示:
TRUNCATE TABLE table_name
警告:如果您的列具有约束或作为外键连接到其他表,这将产生不良影响。
首先,删除列:
ALTER TABLE tbl_name DROP COLUMN column_id
接下来,重新创建列并将其设置为FIRST(如果您希望它作为我假设的第一列):
ALTER TABLE tbl_access ADD COLUMN `access_id` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST