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