簡體   English   中英

已達到主鍵的最大限制,並從表中刪除了所有記錄,但仍無法插入記錄

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

我有一張表,其中有兩個字段,一個是id,它是具有Auto Increment屬性(tinyint)的主鍵,另一個是名稱(varchar(20))。

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

之后,我將表中的值從1插入到127(tinyint的最大限制)。 現在,如果我嘗試將記錄插入表中,則會報錯,因為我達到了tinyint的最大限制。 我很好。 但是,如果我刪除所有記錄並且表為空,那么我也將無法插入任何記錄。 我知道我可以在這里使用truncate來重置主鍵。 但是我的問題是,為什么mysql不會為主鍵插入任何可用的值(從1到127),並且如果我手動為1到127插入id的值,它將起作用。

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

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

如果我有一個帶有大型數據庫的應用程序,並且遇到這種情況,將來任何記錄插入都可能失敗,那么在發生這種情況之前我怎么知道。 有什么方法可以插入記錄(通過刪除所有記錄在空表中)而不截斷表。

對不起,我的英語不好。

謝謝

Mysql將您的AUTO_INCREMENT計數器保存在其INFORMATION_SCHEMA表中。 我不知道您使用的是哪個版本,但是您應該閱讀有關它文檔

如您在這里所讀,您可以設置您要使用的號碼

ALTER TABLE tablename AUTO_INCREMENT = 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM