是否有可能删除表中的整个数据并插入id从1开始的新行
删除命令有助于在我们尝试插入新行时删除表中的数据id将是最后插入的行id + 1(如果最后插入的id是5,那么新的id应该是6)但是我想存储该id为1
截断命令以外的任何建议,提前致谢
答案 0 :(得分:7)
删除所有记录后
ALTER TABLE tablename AUTO_INCREMENT = 1
注意强>
来自MySQL文档:Link
您无法将计数器重置为小于或等于任何值的值 已经被使用过。对于MyISAM,如果值小于或等于 到当前在AUTO_INCREMENT列中的最大值,该值 重置为当前最大值加1。对于InnoDB,如果值为 小于列中的当前最大值,不会发生错误 当前序列值不会改变。
答案 1 :(得分:1)
使用它 TRUNCATE TABLE tableName重置自动增量值:
答案 2 :(得分:1)
我从你的描述中推测,“id”是一个标识列?
在那种情况下,
TRUNCATE TABLE tablename;
同时删除所有行,并重置标识字段以再次从1填充。
答案 3 :(得分:0)
如果您使用TRUNCATE
命令,它将删除所有行并重置自动增量值:
TRUNCATE tablename;
答案 4 :(得分:0)
您需要在以下sequence
中执行两个命令:
首先删除表中的所有数据
delete TABLE_NAME
然后将ID设置为1
insert into TABLE_NAME(ID) values(1)
答案 5 :(得分:0)
正如@mhasan回答
ALTER TABLE `tablename` AUTO_INCREMENT = 1
是一种方法。
另一种方法是删除id列并重新创建它。
ALTER TABLE `tablename` DROP `id`;
ALTER TABLE `tablename` AUTO_INCREMENT = 1;
ALTER TABLE `tablename` ADD `id` int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
但如果你的桌子与其他桌子有关系,你的遗嘱不是一个好的解决方案。