Mysql自增id,其中一些被刪除後,再新增內容這個自增i

2021-04-26 06:20:16 字數 2675 閱讀 5297

1樓:還詒爻

因為自增一般都是抄

序列的,序列有開bai始值,步長,結束值,下一du個值,現在值。而zhi且絕對dao

不能出現重複。

我們假設一個序列,按順序插入1-100,100條記錄,然後地51條和第84條有問題,刪除了。

如果再次插入, 應該是從101開始,不然不管是從51開始,還是從84開始?不管從哪個開始,根據步長都會出現重複,所以序列為了管理方便,都會直接記錄已經用過的最大數值,然後從下一個步長開始。

刪除的記錄,序列不會管,只會增加不會減少。不然會增大很多的管理難度。

我曾經見過,在序列建立之前匯入表的,然後建立的序列,後來他們發現這個表不能插入資料了,因為這個數字在表中存在了,那麼就會報錯。而導致沒辦法插入資料。

2樓:柴達納絲微

是正確的。刪除了就不會連續,sql不保證自增欄位必須連續的,如果需要必須連續,不能使用自增欄位,要手動計算id

mysql資料庫自增l列刪除一條記錄後再新增記錄自增列就不連續了

3樓:翱源來是你

大家用的mysql都是這樣吧

如果你要連續的話 也可以實現啊

每次插入之前要判斷max(5.x的版本都有這個函式吧?!)然後再max+1

不過要是刪除的話 就比較麻煩了 好比刪除3 你得把後面的都修改了 建議不要這麼做

4樓:匿名使用者

自動id列,如果刪除了記錄,再插入記錄時,預設不會重用已經刪除的id,因此是不連續的。

但如果確實需要連續的id,則刪除後必須手工修改關於自動增長的值。

如,假如你這個表名為huoli,自動增長列為id,那麼刪除id=4的記錄後,如果想重用id=4,那麼執行如下語句:

alter table `huoli`

modify column `id` int(11) not null auto_increment auto_increment=4;

5樓:匿名使用者

這是正常現在 一般 刪除都會出現這種情況 自增id一般是不會變化的

6樓:神話v藍冰雨

mssql也是這樣的,很正常啊,有啥可奇怪的

mysql 自增id 為什麼我刪除一條記錄後在插入新的記錄id不是按順序了

7樓:匿名使用者

auto_increment是insert的操作計數的,也可以檢視或修改,

檢視:show create table 表名

修改:alter table 表名 auto_increment=數值

8樓:匿名使用者

自增是計算你一共新增過多少條記錄,並不會受刪除的影響。

9樓:

應該設定 auto_increment自增列了

mysql資料庫刪除一條資料後還想讓新增資料從空缺id處開始。

10樓:山水阿銳

方法1:

truncate table 你的表名

//這樣不但將資料全部刪除,而且重新定位自增的欄位方法2:

delete from 你的表名

dbcc checkident(你的表名,reseed,0)//重新定位自增的欄位,讓它從1開始

方法3:

如果你要儲存你的資料,介紹你第三種方法,by qinyi用phpmyadmin匯出資料庫,你在裡面會有發現哦編輯sql檔案,將其中的自增下一個id號改好,再匯入。

-------------------------truncate命令是會把自增的欄位還原為從1開始的,或者你試試把table_a清空,然後取消自增,儲存,再加回自增,這也是自增段還原為1 的方法。

-----------

mysql資料庫唯一編號欄位(自動編號欄位)在資料庫應用,我們經常要用到唯一編號,以標識記錄。在mysql中可通過資料列的auto_increment屬性

來自動生成。mysql支援多種資料表,每種資料表的自增屬性都有差異,這裡將介紹各種資料表裡的資料列自增屬性。

11樓:匿名使用者

mysql清空表資料後讓自增id仍從空位開始的方法:

1、清空表時使用truncate命令,而不用delete命令mysql> truncate test;

使用truncate命令的好處:

1)、速度快

2)、可以對自增id進行重排,使自增id仍從1開始計算2、清空表資料後,使用alter修改表,mysql>alter table table_name auto_increment=1;

新增以上指令即可。

mysql設定主鍵自增後 假設現在自增到7 我刪除兩條資料之後自增還是從8開始

12樓:匿名使用者

自增id欄位是無法實現自動補缺的,所有試圖讓自動id欄位自動補缺的努力都是徒勞的

版!如果權需要讓記錄編號不中斷,只能用其他方式實現。例如在應用程式端為每條記錄按順序遞增編號;資料庫端解決則可將資料表的自動id欄位刪除掉,再重新新增回自增id欄位、或者建立一個資料結構一樣的表,truncate該表後,再將出現id中斷的記錄行(不含自增id)全部追加進來等方法來消除id中斷。

個人認為不存在非常理想的解決辦法。

mysql如何只更新其中一條資料

select from student where o 比方說我要查詢 o 為空的就 寫一個where o 單引號中間要打一個空格鍵專 修改也一 樣,屬update zi set title 1 where title 單引號中間要打一個空格鍵 注意,資料庫中只識別單引號,不識別雙引號 update...

關於mysql中一條sql語句,mysql 只用一條sql語句,如何查出一個表裡,不同條件對應的資料條數

如果兩個表結構一樣可以用union連起來 select from table1 limit 5union all select from table2 limit 10 create table a code varchar 8 create table b code varchar 8 inser...

您其中一位老師名字是,你其中一位老師的名字是

我其中一位老師的名字叫李水。他是我初中的歷史老師。也是,我的班主任。現在我對他的印象還非常深刻。老師確實很多,但是印象最深,對我影響最大的老師應該是徐磊老師了 以前的語文老師江鵬老師 哦,我有好多老師不知道您問的是哪一位?你其中一位老師的名字是?我其中的一位老師是李義,一日為師,終身為師,多謝老師的...