已达到主键的最大限制并删除了 table 中的所有记录,但仍无法插入记录

Reached maximum limit of primary key and deleted all records from table but still can't insert the record

我有一个 table,其中我使用了两个字段,一个是 id,它是具有自动增量属性 (tinyint) 的主键,另一个是 name (varchar(20))。

id tinyint(4) NOT NULL AUTO_INCREMENT, name varchar(20) NOT NULL, PRIMARY KEY (id)

之后,我在 table 中插入了从 1 到 127 的值(tinyint 的最大限制)。现在,如果我尝试在 table 中插入记录,它会出错,因为我已经达到了 tinyint 的最大限制。我觉得很好。但是,如果我删除所有记录并且 table 为空,那么我也无法插入任何记录。我知道我可以在这里使用 truncate 来重置主键。但我的问题是,为什么 mysql 不为主键插入任何可用值(从 1 到 127),如果我手动插入 id 的值从 1 到 127 它有效。

insert into `new table` (id,name) values(1,'blahblahblah')  Working

insert into `new table` (name) values('blahblahblah') Not working

如果我有一个带有大型数据库的应用程序并且我遇到了这种情况并且将来任何记录插入都可能失败那么我怎么知道之前发生过这种情况。 有什么方法可以插入记录(通过删除所有记录在空 table 中)而不截断 table.

抱歉我的英语不好。

谢谢

Mysql 将您的 AUTO_INCREMENT 计数器保存在其 INFORMATION_SCHEMA table 中。 我不知道您使用的是哪个版本,但您应该阅读 docs about it.

如您所见here,您可以使用

设置您想要的号码
ALTER TABLE tablename AUTO_INCREMENT = 1;