Mysql 插入id为1的新行
是否可以删除表中的整个数据并插入id从1开始的新行 Delete命令有助于在尝试插入新行时从表中删除数据,该行id将是最后插入的行id+1(如果最后插入的id为5,则新id应为6),但我希望将该id存储为1Mysql 插入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,如果值小于或等于 对于“自动增量”列中当前
除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的错误吗?