Mysql 插入id为1的新行

Mysql 插入id为1的新行,mysql,sql,Mysql,Sql,是否可以删除表中的整个数据并插入id从1开始的新行 Delete命令有助于在尝试插入新行时从表中删除数据,该行id将是最后插入的行id+1(如果最后插入的id为5,则新id应为6),但我希望将该id存储为1 除truncate命令之外的任何建议,请在删除所有记录后提前感谢 ALTER TABLE tablename AUTO_INCREMENT = 1 注意 来自MySQL文档: 不能将计数器重置为小于或等于任何该值的值 已经用过了。对于MyISAM,如果值小于或等于 对于“自动增量”列中当前

是否可以删除表中的整个数据并插入id从1开始的新行

Delete命令有助于在尝试插入新行时从表中删除数据,该行id将是最后插入的行id+1(如果最后插入的id为5,则新id应为6),但我希望将该id存储为1


除truncate命令之外的任何建议,请在删除所有记录后提前感谢

ALTER TABLE tablename AUTO_INCREMENT = 1
注意

来自MySQL文档

不能将计数器重置为小于或等于任何该值的值 已经用过了。对于MyISAM,如果值小于或等于 对于“自动增量”列中当前的最大值 重置为当前最大值加1。对于InnoDB,如果值为 小于列中的当前最大值,则不会发生错误,并且 当前序列值不变


如果使用
TRUNCATE
命令,它将删除所有行并重置自动增量值:

TRUNCATE tablename;
用这个
TRUNCATE tableName重置自动增量值:

您需要按以下
顺序执行两个命令:

TRUNCATE tablename;
首先从表中删除所有数据

delete TABLE_NAME
然后将ID设置为1

insert into TABLE_NAME(ID) values(1)

根据你的描述,我猜“id”是一个身份栏

那么,

TRUNCATE TABLE tablename;
同时删除所有行,并重置标识字段以再次从1填充。

As@mhasan answers

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;

但是,如果您的表与其他表有关系,则您的遗嘱不是一个好的解决方案。

我没有进行向下投票,但向下投票可能是因为OP明确要求的解决方案不是TRUNCATE。然而,TRUNCATE是一个更好的解决方案。您能分享一下TRUNCATE的错误吗?